> ## 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)
```