vue题
1.vue优点
数据驱动、组件系统
轻量、简单易学、
组件化、双向数据绑定、视图数据结构相分离
虚拟dom
2.父子间传值
父向子 prop 子向父emit
父provide 子inject
3v-show v-if
相同点 控制数据的显示隐藏
不同点
v-show display:none 只会编译一次
v-if动态向dom树添加在dom树中 ***初始值为dom 不回渲染
4vue单向数据流
父组件的变量,子组件不能直接修改它
5组件之间的传值
父通过绑定变量 子组件通过props接受
子通过emit 触发自定义函数 父通过自定义函数调取参数
兄弟间 eventBus 通过创建中间变量 $emit $on 项目小比较适合
6 路由跳转
声明试 router-link
编程式 js跳转 this.$router.go() this.$router.push({path:"',name:''})
7vuex 属性
state getters mutation action module
8生命周期
beforeCreat 创建前 无el 无fn data
created 创建完成 无el 有fn data 创建了实例和对象
beforeMount 挂载前 $el 与data 都已经初始化了 但是现在的$el 还是放在虚拟dom中
mounted挂载完成 已经渲染$el ***实例渲染完成 $el已经挂载
beforeUpdate updated 更新前 /更新完成
destory 销毁
9v-for v-if 为什么避免同时使用?
v-for 比v-if 优先级要高 ->同时的话 ,会只检查一次
10.v-model 原理
通过Object.defineProperty来劫持数据的getter setter 监听其变化 发布给订阅者
11.计算属性的缓存和方法运用
相同名字的方法和计算属性有什么区别?
1.计算属性缓存基于其依赖 依赖变化才会变化
2.方法 触发重新渲染时 方法会再次执行
遍历大量数组做计算时,计算属性性能较好 。 不用再次重复计算 , 除非你不想要“缓存”。
12.事件流
用户与浏览器页面的交互
事件捕获 目标 事件冒泡
阻止默认事件 event.preventDefault() @click.prevent
阻止冒泡 event.stopPropagetion() @click.stop
当前绑定事件的元素 ev.currentTarget();
当前点击的元素 ev.target();
13
vue-router与location.href区别
location.href 跳转页面