一、表单输入绑定(v-model 指令)
可以用 v-model 指令在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。
详细用法参见官方文档:
二、局部组件和全局组件
1、了解根组件template模板的优先级大于el,如下方式验证:
{ { msg }}
2、局部组件的使用(声子,挂子,用子)
总结:
1)一个子组件挂载到哪个组件,这个组件就是我的父组件;
2)以后模块化开发时,一个组件就是一个文件(一个组件包含了html,css,js),想使用这个组件时导入即可使用
3、全局组件的使用
补充:使用vue内置组件slot分发内容从而自定义按钮的值,代码修改如下:
Vue.component('VBtn',{ data(){ return { } }, template:` `});// 声明一个局部组件Vheaderlet Vheader = { data(){ return { text:"我是局部组件Vheader" } }, // 使用全局组件VBtn template:``};{ { text }}
登录
三、父子组件之间传值
1、父组件往子组件传值
总结:
1)在子组件中使用props声明,就可以在该组件中使用;
2)从父组件中接收到的值也可以传递给他的子组件;
3)父组件中绑定自定义的属性;
2、子组件往父组件传值
总结:
1)子组件中,通过this.$emit('父组件中自定义的事件名', '值'),来触发父组件中自定义的事件;
2)父组件中自定义事件(当前事件中接收子组件的),并为对应的子组件绑定(v-on)自定义的事件;
五、平行组件之间传值
总结:(以A->B传值为例)
1)声明一个Vue对象(bus对象),只是用来平行组件间传值;
2)B要声明事件 bus.$on('事件的名字', function(val){});
3)A要触发事件 bus.$emit('TestA组件中声明的事件名', '值');
4)注意:记住平行组件传值前提是这两个方法必须绑定在同一个实例化对象(bus)上;
六、补充知识点
1、关于this指向的问题,与vm实例没有任何关系,而是与箭头函数和普通函数的区别。总结两点:
1)es5的普通函数,this指向是指向了调用者,比如vue实例的方法(在methods中声明了一个方法)是由vue实例vm调用的,所以this指向vm。
2)箭头函数的this指向它的调用者所在的上下文,也就是vm实例所在的上下文(定义vm的父类),即window。
2、中的部分解读
3、将vue添加至chorme
翻墙!!!