网易云课堂收钱观看之Vue

发布时间 2023-09-27 16:53:40作者: WEB前端小菜鸟
看网易云收费课程有感之Vue
 
命名规则:
小驼峰 camelCase   eg:函数,变量
大驼峰:PascalCase  eg: JS类  vue里compents下的组件 大写开头
短横线隔开式kebab-case(又称烤肉窜)  eg:自定义组件使用的时候 <my-table/>  传递属性时使用  <my-table  my-data='数据'> <my-table/>这个只是约定
 
computed:依赖项变化则变化,与methods相比有缓存且性能更好,你方法每次都要调用,我则是变化在调用
watch:在数据变化后执行异步操作或开销较大时使用,computed则适合开销小的使用
 
Object.defineProperty 
不能检测对象属性的添加删除
不能检测数组长度变化
不能直接修改数组的数据,这是为啥?因为出于对性能的考虑,不会对数组每个元素进行监听,eg:如果是一个海量的数组,遍历收集依赖就会变得很庞大就会消耗性能
 
解决方案:vue提供了Vue.set方法   实例中也有this.$set这个方法(全局方法Vue.set的别名)还有其他Vue.delete等
数组的push,pop,shift等能响应式更新视图,那是Vue做了代理包装(包装里头加了响应式的跟踪依赖)
 
事件修饰符,.once .prevent   阻止冒泡等
 
 
动态组件:就是根据条件不同渲染不同的组件,vue提供内置动态组件 component。react中 写的三元运算符去判断渲染哪个组件
 
Vue2的生命周期
 
补充生命周期:
 
 
 自定义指令:当我们的methos中存在操作DOM/BOM逻辑的时候就该思考是否可以抽象成一个自定义指令了,形成解耦,各做各的
eg:    v-resize 浏览器窗口变化  v-focus 输入框聚焦等 自己写一个就行了