vue_面试题整理

复制代码
// vue 面试题总结
// 1. v-if与v-show的区别

// 功能,条件渲染,显示或隐藏
v-if: vue实例不会渲染dom节点,只有当表达式为真(假)的时候才是渲染(销毁)DOM
v-show: 不管表达式是否为真,vue实例始终都会渲染DOM,以css样式display属性来控制显示或隐藏

// 使用场景
当频繁的切换组件时,如下拉菜单,级联菜单,等...使用v-show性能更优


// 2. v-for的key值使用

// 功能,列表渲染,Vue优化diff策略
Vue在diff时,都是在对比虚拟DOM节点,在每次渲染时,都会判断新节点和旧节点是否为同一个节点,
如果不同,会删除旧节点,插入新节点操作,如果相同,Vue认为没有变化,会复用节点

如果不设置key,新节点和就节点只会进行头尾两端相互比较(也就是数据长度是否发生变化)
设置key以后,除了头尾比较,还会从用可以生成的对象中查找匹配的节点,更高效的利用DOM

// 详细查看: https://segmentfault.com/a/1190000008782928

// 总结:
Vue在进行DOM渲染列表的时候,处于性能考虑,会复用已存在的元素,而不是从新创建,如果数据项的顺序被改变,Vue将不会匹配数据项的顺序,设置key值,将会绑定节点唯一,提升性能

// 注意:渲染列表若用数组索引index为key,当向数组中指定位置插入一个新元素后,对应着后面的虚拟DOM的key值全部更新了,这个时候还是会做不必要的更新,就像没有加KEY一样


// 3. computed计算属性和methods方法的区别

// 功能: 处理复杂逻辑

  1. 调用方式
    - computed计算属性不是方法,在模板使用的时候不用加(),否则报错not a function,具有getter和setter
    - methods方法,调用时加上(),使用return返回逻辑处理结果
  2. 响应式依赖进行缓存
    - computed计算属性基于它们的响应式依赖进行缓存
      * 响应式:计算属性内依赖data中其他属性,将会都进行缓存,当依赖的属性改变,计算属性也会改变
      * 缓存机制:{{msg}} -- {{msg}}, msg没有改变,多次访问msg,计算属性会立即返回之前的计算结果
    - methods方法,没有响应式依赖缓存,{{msg()}}-- {{msg()}} 调用一次执行一次
  3. 使用场景
    - computed,一般用于模板渲染,条件渲染计算,
    - methods, 一般用于事件处理方法,click, change......
  
  // 注意点 
  computed: {
    str () {
      let number = this.count  // this.count发生改变,str计算属性就会触发
      return this.name + 'jack'
    }
  }
 
// 4. filter传递多个参数
// 使用{{money | priceFilter(aa,bb)}}
filter: {
  priceFilter(money, aa, bb){
    第一个参数是过滤传过来的参数,aa,bb是手动传递过来的参数
  }
}
复制代码

 

// 3. computed计算属性和methods方法的区别

// 功能: 处理复杂逻辑
posted @   前端之旅  阅读(223)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示