1 用 is='a' a为组件名,解决在使用组件的时候在H5标签上面的bug(例如table里面一定要有tr ,select里面一定要有option)
2 在子组件里面写data,需要些成函数形式,
3 用ref进行dom操作,用在普通标签上,指向的是该标签,用在自定义组件上,指向是对子组件的一个引用
4 父组件用绑定属性的方式向子组件传值,子组件用事件触发的形式向父组件传值,其中,父组件向子组件传值的时候有一个单向数据流的规定,子组件不能改变父组件传过来的值,如果非要改,可以在子组件data里面拷贝一个,然后改拷贝的(原因是可能传过来的值其他组件也在使用,可能会出错)。ps: 例如 :count ='5' 在用绑定属性时加上 : 号 是传一个js表达式,5是数字类型,如果没有冒号 count ='5' ,此时5是字符串类型
5 组件参数校验,包括参数类型,是否required 值的长度校验,并且可以设置默认值
6 给组件绑定原生事件:在组件上绑定click事件时,是定义的click事件,并非原生的click事件,需要在click后面加上native才可以变为原生的click的事件,或者在子组件里面用this.$emit('click')触发父组件里面的自定义click事件
7 非父子组件之间的传值:1 bus/发布订阅模式/观察者模式/总线,给vue的prototype上价格bus属性,在子组件里面触发事件并且 监听 2: vuex(状态管理)
8 vue中的插槽(slot) ,当父组件向子组件传dom结构时,可以用到slot,slot可以设置默认值,默认值写在slot标签里面,插槽只有一个,但是具名插槽可以有很多个,在父组件里面用 slot='a' 在子组件里面用 name='a' 实现了具名插槽的使用
9 作用域插槽,当子组件该怎么显示可以被父组件控制的时候,可以用作用域插槽,在组件中写template标签,标签上写上slot-scope='a',a就是从子组件传过来的值
10 动态组件与v-once, 用component标签,标签里面写is='组件名',可以动态展示,但是每次展示隐藏都会销毁创建一次,所以为了提高性能,可以在子组件里面加上v-once,当其被创建时,会写入内存不会销毁,提高了性能。