局部组件:在父组件中导入的这个MyCom组件,只能在当前组件中使用
import MyCom from './MyCom'
export default {
components: { MyCom }
}
全局组件:在main.js中导入
import MyCom from './Mycom'
// Vue.component(组件名,组件)
Vue.component('MyCom', MyCom)
全局指令
局部指令
export default {
directives: {
focus: {
inserted(el){
el.focus()
}
}
}
}
全局指令
在main.js中导入
Vue.directive('focus', {
inserted(el){
el.focus()
}
})
v-model是语法糖
语法糖: 对一个更加复杂的 *** 作的封装
// 1. v-model 在表单元素上使用
<input v-model="xxx" />
// 2. v-model 在自己定义的组件上使用
<MyCom v-model="xxx" />
上面的写法是快捷方式,它等价于如下复杂的写法:
<MyCom :value="xxx" @input="新值=>xxx=新值" />
// v-model做两件事:
// 1. 向子组件传来一个名为value的属性
// 2. 在子组件监听input事件,这个事件的回调中修改value所绑定的值
问:为啥要在自己的组件上用v-model?
答:v-model写法比较简单,一个指令实现两个功能:子传父(input事件),父传子(value属性)。
问:可不可以不用?
答:可以。
响应式:数据改变–>视图跟着变
对象新增的属性没有响应式
数组的部分 *** 作没有响应式
● push(),pop(),shift(),unshift(),splice(),sort(),reverse()
7个可以直接修改数组的方法有响应式
解决办法
this.$set(obj,"propertyName","value")
this.$set(arr,"index","value")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)