Vue.js 互动版

vue.js 简介
一个渐进式前端框架 安装方式:直接引入、CDN、NPM 第一个vue.js实例 Hello World 通过构造器函数创建实例 响应式的数据(Data)属性与方法
数据绑定模版语法
模版中文本插值的“Mustache”语法 模版语法如何处理原始 HTML 数据绑定HTML特性(Attributes) JavaScript表达式 过滤器-可自定义的函数 指令(Directives) 通过计算属性处理逻辑
Class列表与Style样式的数据绑定
绑定Html Class对象语法 绑定Html Class数组语法 绑定内联样式Style对象语法 绑定内联样式Style数组语法
渲染指令
条件渲染指令 v-if template元素条件渲染 v-if 条件渲染 v-show 条件渲染 v-else 列表渲染指令 v-for template元素列表渲染 v-for
表单控件输入绑定
文本输入框 Text 多选框 Checkbox 单选按钮 Radio 选择下拉列表 Selected 修饰符参数特性 lazy、number、trim
自定义指令
自定义指令基础(钩子函数) 指令实例属性 指令对象字面量 指令对象字面修饰符 自定义元素指令
自定义过滤器
自定义过滤器基础 双向自定义过滤器 过滤器的动态参数
方法与事件处理器
方法处理器 内联语句处理器 事件处理的修饰符 按键处理的修饰符
过渡和动画效果
过渡动画效果简介 CSS 过渡动画 过渡的CSS类名 过渡流程详解示例 渐近的动态过渡
组件
组件的注册组合构造 Props传递数据给子组件 动态Prop用作特性 通过 Props 绑定类型实现单双向绑定 自定义通信事件示例
在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

自定义事件

Vue 实例实现了一个自定义事件接口,用于在组件树中通信。这个事件系统独立于原生 DOM 事件,做法也不同。

每个 Vue 实例都是一个事件触发器:

  • 使用 $on() 监听事件;
  • 使用 $emit() 在它上面触发事件;
  • 使用 $dispatch() 派发事件,事件沿着父链冒泡;
  • 使用 $broadcast() 广播事件,事件向下传导给所有的后代。

子组件可以用 this.$parent 访问它的父组件,而父组件有一个数组 this.$children,包含它所有的子元素。

<!-- 子组件模板 -->
<template id="child-template">
  <input v-model="msg">
  <button v-on:click="notify">Dispatch Event</button>
</template>
<!-- 父组件模板 -->
<div id="events-example">
  <p>Messages: {{ messages | json }}</p>
  <child></child>
</div>
// 注册子组件
// 将当前消息派发出去
Vue.component('child', {
  template: '#child-template',
  data: function () {
    return { msg: 'hello' }
  },
  methods: {
    notify: function () {
      if (this.msg.trim()) {
        this.$dispatch('child-msg', this.msg)
        this.msg = ''
      }
    }
  }
})
// 启动父组件
// 将收到消息时将事件推入一个数组
var parent = new Vue({
  el: '#events-example',
  data: {
    messages: []
  },
  // 在创建实例时 `events` 选项简单地调用 `$on`
  events: {
    'child-msg': function (msg) {
      // 事件回调内的 `this` 自动绑定到注册它的实例上
      this.messages.push(msg)
    }
  }
})

关于组件的介绍我们就先讲到这里,更多介绍在请参考这里

将上面的代码,在练习环境中去练一练。