官网有说v-if与v-for不要放在一起用因为v-if的优先级大,获取不到v-for的值
所以一般多是v-for之后里面包含v-if,循环的时候判断是否显示隐藏什么内容,而且使用v-if就会涉及到v-show的区别,一个是移除dom节点,一个是隐藏节点不占据位置,所以在频繁切换的地方使用v-show,而不频繁的使用v-if
在使用v-for的时候如果你需要打印过滤之后的东西,建议使用computed计算机属于里面绑定data的响应式数据读取缓存,来动态改变,避免写多次重复的代码,优化代码结构。
如果计算机属性与一般会与watch来比较,一个是监听某一个东西,一个是处理data里面的数据返回新的东西。所以我们要加以区别。
这些属性在编译完成会把watch methods computed 这些都挂载在vue实例的生命所以data与methods的命名一定不能一样。
说到命名一定要涉及到mixins混入,复用函数变量会在引入的组件里面加载,每引入一次就会在组件里面注入一次,所以里面的生命周期函数是一个组件加载一次就跑一次,导入多少次就加载多少次。
使用混入需要谨慎处理,一般都采用在vue实例运行时全局混入,这样就只会加载一次,绑定到原型上面,那些路由也好vuex也好,element组件库也好,国际化也好,都是use install在原型上面挂载了方法,不然那些this.$message一样的方法就没办法跑起来。
能够使用组件传参就组件传参,再是mixins,最后是vuex这样方便管理数据,让结构不会变的很臃肿,使用复用的组件减少代码量。
在使用组件嵌套的时候需要注意父子组件的运行,
父子beforcreate created beforemount 子组件四个生命周期加载完 mounted
父组件先加载后摧毁子组件后加载先催促
注入函数provide inject 这个在获取的时候 是在beforecreate 的时候