1. computed(计算属性)和方法有什么区别?

计算属性本质上是包含 getter 和 setter 的方法

当获取计算属性时,实际上是在调用计算属性的 getter 方法。vue 会收集计算属性的依赖,并缓存计算属性的返回结果。只有当依赖变化后才会重新进行计算。

方法没有缓存,每次调用方法都会导致重新执行。

计算属性的 getter 和 setter 参数固定,getter 没有参数,setter 只有一个参数。而方法的参数不限。

由于有以上的这些区别,因此计算属性通常是根据已有数据得到其它数据,并在得到数据的过程中不建议使用异步、当前时间、随机数等副作用操作。

实际上,它们最重要的区别是含义上的区别。计算属性含义上也是一个属性(data 属性),可以读取也可以赋值;方法含义上是一个操作,用于处理一些事情。

2. v-if和v-show有什么区别?

v-if 能够控制是否生成 vnode(虚拟dom树),也就间接控制了是否生成对应dom。当 v-if 为 true 时,会生成对应 vnode,并生成对应的 dom 元素;当其为 false 时,不会生成对应 vnode,自然不会生成任何 dom 元素。v-if 是组件真正的渲染和销毁,而不是显示和隐藏

v-show 始终会生成 vnode,也就间接导致了始终生成 dom。它只是控制 dom 的 display 属性,当 v-show为 true 时,不做任何处理;当其为 false 时,生成的 dom 的 dispaly 属性为 none。v-show 是 CSS display 控制显示和隐藏

使用 v-if 可以有效的减少树的节点和渲染量,但也会导致树的不稳定;而使用 v-show 可以保持树的稳定,但不能减少树的节点和渲染量。

vue渲染节点越少效率越高,树越稳定效率越高。v-if节点少但树不稳定,v-show节点多但树稳定。

因此,在实际开发中,显示状态变化频繁的情况下应使用 v-show,以保持树的稳定;显示状态变化少时应该使用 v-if,以减少树的节点和渲染量。

3. 为何 v-for 要用 key

必须要用 key, 而且不能用 index 和 random,

key 是 vue 中 vnode 的唯一标记,通过这个 key,我们的 diff 操作可以更准确,更快速

在 diff 算法中用 tag 和 key 来判断,是否是 sameNode

可以减少渲染次数,提高渲染性能

VUE知识体系、VUE面试题的更多相关文章

  1. 总结vue知识体系之实用技巧

    vue 作为目前前端三大框架之一,对于前端开发者可以说是必备技能.那么怎么系统地学习和掌握 vue 呢?为此,我做了简单的知识体系体系总结,不足之处请各位大佬多多包涵和指正,如果喜欢的可以点个小赞!本 ...

  2. 2018 我要告诉你的 Vue 知识大全

    Vue ,React ,Angular 三大主流框架,最后我选择学习 Vue ,接触过 React ,自己感觉学习曲线有些陡峭,进而我选择了学习 Vue ,他的学习曲线平稳很多:不管选择什么框架,除了 ...

  3. vue知识总结

    vue: 渐进式JavaScript 框架 Vue项目构建 npm install -g vue vue init webpack-simple my-project cd my-project np ...

  4. Vue大概知识体系和学习参考

    Vue大概知识体系和学习参考文档 官方文档学习,参考,借鉴地址:https://cn.vuejs.org/v2/guide/installation.html 菜鸟教程:https://www.run ...

  5. Vue学习笔记-Vue.js-2.X 学习(一)===>基本知识学习

    一  使用环境: windows 7 64位操作系统 二  IDE:VSCode/PyCharm 三  Vue.js官网: https://cn.vuejs.org/ 四  下载安装引用 方式1:直接 ...

  6. Vue 知识整理—02-起步

    一:Vue 语法格式: vue vm = new Vue({ //选项 }) 二:Vue 实例: <div id="app"> <p>{{message}} ...

  7. VUE知识day3_vue-cli脚手架安装和webpack模板项目生成

    ue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目. GitHub地址是:https://github.com/vuejs/vue-cli 一.安 ...

  8. vue知识day1

    HTML语义.CSS:样式 js:行为 jQuery:简化了js操作 boostrap :框架 ,以类方式展现 react:facebook 公司的产品 angular:谷歌公司产品 vue:作者尤雨 ...

  9. 【从刷面试题到构建知识体系】Java底层-synchronized锁-1

    在技术论坛中,经常看到一种言论:面试造火箭,干活拧螺丝.我们平时写的大部分代码的确是CRDU,再提一个层次,也无非就是揉进去复杂一些的业务逻辑,把一堆的CRDU组合起来. 那么问题来了:我们提倡的研究 ...

  10. github上最全的资源教程-前端涉及的所有知识体系

    前面分享了前端入门资源汇总,今天分享下前端所有的知识体系. 个人站长对个人综合素质要求还是比较高的,要想打造多拉斯自媒体网站,不花点心血是很难成功的,学习前端是必不可少的一个环节, 当然你不一定要成为 ...

随机推荐

  1. KALI 安装搜狗输入法

    原文网址 https://www.cnblogs.com/liuxingbusi/p/9277127.html ------------------------------------------ 一 ...

  2. Mac M芯片使用PD安装centos7无页面安装

    1.选择Centos镜像 点击继续 设置虚拟机名称: 点击创建 : 选择第一个回车开始下载系统,下载完成进入设置页面,首先输入 1 设置语言: 进入语言设置,选择77普通话: 选择c继续,又回到系统配 ...

  3. 白话分解入门操作系统到 Java

    一.完成一个任务需要什么? 时间 + 资源 + 处理能力 时间就是时间. 资源就是资源. 处理能力就是能够利用时间和资源完成任务的主体. 二.关于操作系统 处理能力就是cpu. 资源就是存储. 时间就 ...

  4. #平衡树,set#洛谷 2286 [HNOI2004]宠物收养场

    题目 分析 由于宠物被领养者领养和领养者领养宠物操作是一样的, 考虑建两棵平衡树维护操作,以领养者领养宠物为例 若当前没有宠物,就将领养者加入平衡树中, 否则选择最接近的特点值的宠物统计答案并删除该宠 ...

  5. Seaborn调色盘设置

    调色盘设置 设置调色 color_palette()设置调色盘,返回一个调色盘的颜色列表,默认6种颜色:deep, muted, bright, pastel, dark, colorblind. s ...

  6. 成为一名 BI数据分析师,这些能力不能少

    近些年来,随着数据技能的日益普及和数据工具的不断简化,大数据技术的迅速发展催生了很多新生职业,BI数据分析师就是其中一个岗位. 说到BI数据分析,我们首先要说的是 BI,它的全称是 Business ...

  7. 实战指南:使用 xUnit.DependencyInjection 在单元测试中实现依赖注入【完整教程】

    引言 上一篇我们创建了一个Sample.Api项目和Sample.Repository,并且带大家熟悉了一下Moq的概念,这一章我们来实战一下在xUnit项目使用依赖注入. Xunit.Depende ...

  8. mysql 必知必会整理—sql 正则表达[五]

    前言 简单整理一下sql 正则表达式. 正文 正则表达式是用来匹配文本的特殊的串(字符集合).如果你想从一个文本文件中提取电话号码,可以使用正则表达式.如果你需要查找名字中间有数字的所有文件,可以使用 ...

  9. 利用PyTorch训练模型识别数字+英文图片验证码

    利用PyTorch训练模型识别数字+英文图片验证码 摘要:使用深度学习框架PyTorch来训练模型去识别4-6位数字+字母混合图片验证码(我们可以使用第三方库captcha生成这种图片验证码或者自己收 ...

  10. 实训篇-Html-表单练习

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...