1: v-for 指令为什么要加key 值?
vue 租金按高度复用增加了key 可以标识组件的唯一性, 为了更好的区别各个组件, key 的作用主要是为了高效的更新虚拟DOM.
2: v-if 和 v-for 不能同时使用的原因?
当v-for 和v-if 一起使用的时候, v-for 的优先级高于v-if, v-for 会遍历整个列表, 所以使用的话, 每次v-for 都会执行v-if. 造成不必要的计算, 影响性能。
解决办法: 使用计算属性 computerd 过滤数据。
3: v-model: 指令的实现原理:
v-model: 其实是一个语法糖, 它实际是做了两步动作:
1: 第一次绑定 value 等于一个变量。
2: 出发输入事件input
v-on 等于这个变量等于 $event.target.value (拿到事件身上原生属性);
3: (触发input 事件时, $event 是当前的事件对象。 $event.target.value 指向的是当前input 的值。)
4: v-model: 都绑定了什么?
v-model: 绑定时做了两件事:
在表单元素中做了监听事件, 事件监听: (input 事件, change 事件)
如果发生变化时, 调用回调函数把最新的值设置到 Vue 实例对象上, 实例的响应化, set 函数会触发, 跟这个数据相关部分就更新。
5: vue 中 data为什么是一个函数形式?
组件中的data 写成对象形式, 就使得所有组件实例共用了一根data, 造成数据污染。
6: v-if 和v-show 都可以实现元素的显示与隐藏.
区别: v-show: 只是简单使用css 控制元素的display 属性, v-show: 首次渲染开销高, v-show: 切换开销小。
v-if: 是对元素节点的进行添加和移除, v-if: 首次渲染开销要小的多, 但是切换开销更高。
7: watch 监听器中立即监听和深度监听
watch()的作用可以监听一个值的变化, 并且调用因为变化需要执行的方法。
watch() 监听器: 有两个特点: 第一次绑定的时候, 不会执行监听, 只有在值变化的时候, 才会执行执行监听函数, handle 函数才会执行, 要最初绑定的时候也执行函数, 就需要使用 immediate="true" 开启立即监听
8: 当监听对象发生变化时, 普通的watch 方法监听到对象内部属性的变化, 此时就需要deep 属性对对象进行深度监听
9:computer 计算属性和watch 监听器之间的区别:
1: computer: 能够完成的功能, watch 都可以完成。
2: watch 侦听器能够完成功能, computer 计算属性不一定能够完成。 例如: watch可以进行一步操作。
两个重要的小原则:
1: 所有被vue 管理的函数, 最好写成普通函数, 这样this 的指向才是vm 或者是组件实例对象。
2:所有不被vue 所管理的函数(定时器的回调函数, ajax的回调函数等), 做好写成箭头函数, 这样的this 指向才是 vm 或者组件的实例对象。
10: 在vue 中属性绑定: 当做变量进行解析操作, 属性绑定的类名不确定, 需要动态指定。
绑定class 样式 --- 数组写法: 适用于要绑定的个数不确定, 名字不确定。
vue 面试题:
猜你喜欢
转载自blog.csdn.net/weixin_45677987/article/details/123207953
今日推荐
周排行