《2022年vue面试题 .pdf》由会员分享,可在线阅读,更多相关《2022年vue面试题 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Vue面试题1.vue 中的 MVVM 模式即 Model-View-ViewModel 。Vue 是以数据为驱动的,Vue 自身将 DOM 和数据进行绑定,一旦创建绑定,DOM 和数据将保持同步,每当数据发生变化,DOM 会跟着变化。ViewModel 是 Vue 的核心, 它是 Vue的一个实例。 Vue实例时作用域某个HTML元素上的, 这个 HTML元素可以是body,也可以是某个id 所指代的元素。DOM Listeners和 Data Bindings是实现双向绑定的关键。DOM Listeners监听页面所有View层 DOM 元素的变化,当发生变化,Model 层的数据随之变化
2、;Data Bindings监听 Model 层的数据,当数据发生变化,View 层的 DOM 元素随之变化。2.v-show 指令, v-if的区别条件渲染指令,与v-if不同的是,无论v-show 的值为 true或 false ,元素都会存在于 HTML代码中; 而只有当v-if的值为 true ,元素才会存在于HTML代码中。 v-show 指令只是设置了元素CSS的 style值3. 如何让 css 只在当前组件中起作用在每一个 vue 组件中都可以定义各自的css ,js ,如果希望组件内写的css 只对当前组件起作用,只需要在style中写入 scoped,即: 4. 指令 ke
3、ep-alive 在 vue-router写着 keep-alive,keep-alive的含义:如果把切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染。为此可以添加一个 keep-alive指令 5.Vuejs组件vuejs 构建组件使用Vponent(componentName, /*component*/ );这里注意一点,组件要先注册再使用Vponent(mine, template:#mineTpl, props:name,title,city,content ); var v=new Vue( el:#vueInstance, data: name:zhang, titl
4、e:this is title, city:Beijing, content:these are some desc about Blog ); 6. 路由嵌套路由嵌套会将其他组件渲染到该组件内,而不是进行整个页面跳转router-view本身就是将组件渲染到该位置,想要进行页面跳转,就要将页面渲染到根组件,在起始配置路由时名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 候写到:var App = Vue.extend( roo
5、t ); router.start(App,#app); 这里首先将根组件注册进来,用于将路由中配置好的各个页面渲染出来,然后将根组件挂载到与 #app 匹配的元素上。7. 指令 v-el的使用有时候我们想就像使用jquery那样去访问一个元素,此时就可以使用v-el指令,去给这个元素注册一个索引,方便通过所属实例的$el 访问这个元素。注意HTML不区分大小写,所以v-el:someEl将转换为全小写。可以用v-el:some-el然后设置this.$el.someEl。示例hello world this.$els.msg.textContent / -hello this.$els.ot
6、herMsg.textContent / -world this.$els.msg /-hello 8.vuejs中使用事件名在 vuejs 中,我们经常要绑定一些事件,有时候给DOM 元素绑定,有时候给组件绑定。绑定事件在HTML中用 v-on:click-event,这时 evet 的名字不要出现大写,因为在 1.x 中不区分大小写,所以如果我们在HTML写 v-on:click=myEvent而在 js 中写 myEvent 就出错误,所以在 vuejs 的 1.x 绑定事件时候, 要尽量避免使用大写字母。在 2.0 中没有该限制!9.Vue.js是什么Vue.js (是一套构建用户界面
7、的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面, Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件10.VueJS 特性:I: MVVM 模式(数据变量(model)发生改变视图( view)也改变,视图( view)改变,数据变量(model)也发生改变)使用 MVVM 模式有几大好处:1. 低耦合。 View 可以独立于Model 变化和修改,一个ViewMod
8、el 可以绑定到不同的 View 上,当 View 变化的时候Model 可以不变,当Model 变化的时候View 也可以不变。2. 可重用性。 可以把一些视图的逻辑放在ViewModel 里面,让很多 View 重用这段视图逻辑。3. 独立开发。 开发人员可以专注与业务逻辑和数据的开发(ViewModel) 。设计人员可以专注于界面(View) 的设计。4. 可测试性。可以针对ViewModel 来对界面 (View) 进行测试II: 组件化III 指令系统IIII: vue2.0开始支持虚拟dom vue1.0 是操作的是真的dom元素而不是虚拟的虚拟 dom:可以提升页面的刷新速度名师
9、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 虚拟 DOM 有利也有弊。A:大小 - 其中之一就是更多的功能意味着代码包中更多行的代码。幸运的是, Vue.js 2.0 依旧比较小(当前版本 21.4kb ),并且也正在删除很多东西。B: 内存 - 同样,虚拟DOM 需要将现有的DOM 拷贝后保存在内存中,这是一个在DOM 更新速度和内存使用中的权衡。C: 并不适用所有情况 - 如果虚拟DOM 可以一次性进行批量的修改是非常好的。
10、但是如果是单独的、稀少的更新呢?这样的任何DOM 更新都将会使虚拟DOM 带来无意义的预计算11.Vue.js特点简洁:页面由HTML 模板 +Json 数据 +Vue 实例组成数据驱动:自动计算属性和追踪依赖的模板表达式组件化:用可复用、解耦的组件来构造页面轻量:代码量小,不依赖其他库快速:精确有效批量DOM 更新模板友好:可通过npm ,bower 等多种方式安装,很容易融入12.Vue.js 和 AngularJS 之间的区别是什么? 下面是一些选择 Vue 而不是 Angular 的可能原因;Vue.js 是一个更加灵活开放的解决方案。它允许你以希望的方式组织你的应用程序,而不是任何时
11、候都必须遵循 Angular 制定的规则。它仅仅是一个视图层,所以你可以将它嵌入一个现有页面而不一定要做成一个庞大的单页应用。在结合其他库方面它给了你更大的的空间,但相应,你也需要做更多的架构决策。例如,Vue.js 核心默认不包含路由和 ajax 功能,并且通常假定你在用应用中使用了一个外部的模块构建系统。这可能是最重要的区别在 API 和内部设计方面,Vue.js 比 Angular 简单得多 , 因此你可以快速地掌握它的全部特性并投入开发。Vue.js 拥有更好的性能,因为它不使用脏检查。当 watcher 越来越多时 , Angular 会变得越来越慢,因为作用域内的每一次数据变更,所
12、有的 watcher 都需要被重新求值。Vue 则根本没有这个问题,因为它采用的是基于依赖追踪的观察系统,所以所有的数据变更触发都是独立的,除非它们之间有明确的依赖关系。Vue.js 中指令和组件的概念区分得更为清晰。指令只负责封装 DOM 操作,而组件代表一个自给自足的独立单元它拥有自己的视图和数据逻辑。在 Angular 中它们两者间有不少概念上的混淆。13.Vue.js 和 React.js 有什么区别 ? React.js 和 Vue.js 确实有一些相似它们都提供数据驱动、可组合搭建的视图组件。然而,它们的内部实现是完全不同的。React 是基于 Virtual DOM一种在内存中描
13、述DOM 树状态的数据结构。React 中的数据通常被看作是不可变的,而 DOM 操作则是通过Virtual DOM 的 diff 来计算的。与之相比,Vue.js 中的数据默认是可变的,而数据的变更会直接出发对应的 DOM 更新。相比于 Virtual DOM ,Vue.js 使用实际的 DOM 作为模板,并且保持对真实节点的引用来进行数据绑定。Virtual DOM 提供了一个函数式的描述视图的方法,这很 cool 。因为它不使用数据观察机制,每次更新都会重新渲染整个应用,因此从定义上保证了视图通与数据的同步。它也开辟了 JavaScript 同构应用的可能性。名师资料总结 - - -精品
14、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 实话实说, 我自己对 React 的设计理念也是十分欣赏的。但 React 有一个问题就是组件的逻辑和视图结合得非常紧密。对于部分开发者来说,他们可能觉得这是个优点,但对那些像我一样兼顾设计和开发的人来说,还是更偏好模板,因为模板能让我们更好地在视觉上思考设计和 CSS。 JSX 和 JavaScript 逻辑的混合干扰了我将代码映射到设计的思维过程。相反,Vue.js 通过在模板中加入一个轻量级的 DSL
15、( 指令系统 ) ,换来一个依旧直观的模板,且能够将逻辑封装进指令和过滤器中。React 的另一个问题是:由于 DOM 更新完全交由 Virtual DOM 管理,当你真的想要自己控制 DOM 是就有点棘手了 (虽然理论上你可以,但这样做时你本质上在对抗 React 的设计思想) 。 对于需要复杂时间控制的动画来说这就变成了一项很讨人厌的限制。在这方面, Vue.js 允许更多的灵活性,并且有不少用 Vue.js 构建的富交互实例名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -