> ## 1、vue方法 ``` data: 数据集,return一个Object, prop:接收数据定义,type:数据类型,default:默认值,value:{type: Array,default: () => {[]}} computed: 数据的监听,实时计算,需要return一个数据 watch: 数据观察,深度监听和浅监听 ``` ``` watch() { type: { handler(val) { console.log(val) } deep: true, //是否深度监听 immediate: true //是否需要首次监听 } } ``` ``` computed: { list(){ return [] } } ``` > ## 2、vue传值方法 ``` 子传父: 通过this.$emit(‘事件名',数据)传递,父组件通过v-on:事件名=函数()接收 父传子:通过v-bing绑定组件,子组件通过props接收 兄弟:建一个bus总线,new一个vue。或者利用vuex,状态管理器 ``` > ## 3、注册全局组件 ``` import Vue from 'vue' import TableMixin from './TableMixin' const Components = [ TableMixin, ] // 注册全局组件 Components.map((com) => { Vue.component(com.name, com) }) export default Vue ``` > ## 4、自定义组件 ``` Vue.directive(‘name’, { Bind(){ 只调用一次,指令第一次绑定到元素时调用 }, Inserted(){ 被绑定元素插入父节点时调用 }, Update(){ 被绑定元素所在的模板更新时调用 }, componentUpdated(){ 被绑定元素所在模板完成一次更新周期时调用 }, unbind(){ 被绑定元素所在模板完成一次更新周期时调用 }, }), ``` > ## 5、$nextTick 常用于更新视图后操作数据未变 ``` vue.$nextTick(() =>{ 视图更新后的操作 }) ``` > ## 6、$set常用于数据源变了,但是视图没更新 ``` vue.$set(需要更新的集合,‘需要更新的字段’,更新值) let obj = { a: 2 } this.$set(obj, 'a', 3) ```