vue 面试题:

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 样式 --- 数组写法:  适用于要绑定的个数不确定,  名字不确定。

猜你喜欢

转载自blog.csdn.net/weixin_45677987/article/details/123207953
今日推荐