问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vue常见面试题

发布网友 发布时间:2022-09-05 01:14

我来回答

1个回答

热心网友 时间:2023-01-28 10:46

1.什么是vue的生命周期?

Vue实例从创建到销毁的过程,就是生命周期。也就是从开始创建、初始化数据、编译模板、挂载DOM->渲染、更新->渲染、卸载等一系列过程,我们称这是Vue的生命周期。

2.vue生命周期的作用是什么?

它的生命周期中有多个事件钩子,让我们在控制整个vue实例的过程时更容易形成好的逻辑。

3.Vue生命周期总共有几个阶段?

它可以总共分为8个阶段:创建前/后,载入前/后,更新前/后,销毁前/销毁后

4.第一次页面加载会触发那几个钩子?

第一次页面加载时会触发beforeCreate,created,beforeMount,mounted

5.DOM渲染在哪个周期中就已经完成?

DOM渲染在mounted中就已经完成了

6.生命周期钩子的一些使用方法:

1.beforecreate:可以在加个loading事件,在加载实例是触发

2.created:初始化完成时的事件写在这里,如在这结束loading事件,异步请求也适宜在这里调用

3.mounted:挂载元素,获取到dom节点

4.updated:如果对数据统一处理,在这里写上相应函数

5.beforeDestroy:可以一个确认停止事件的确认框

6.nextTick:更新数据后立即操作dom

7.v-show与v-if的区别

v-show是css切换,v-if是完整的销毁和重新创建

使用频繁切换时用v-show,运行时较少改变时用v-if

V-if=’false’v-if是条件渲染,当false的时候不会渲染

使用v-if的时候,如果值为false,那么页面将不会有这个html标签生成

v-show则是不管值是为true还是false,html元素都会存在,只是css中的display显示或隐藏

v-show 仅仅控制元素的显示方式,将 display 属性在 block 和 none 来回切换;而v-if会控制这个 DOM 节点的存在与否。当我们需要经常切换某个元素的显示/隐藏时,使用v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理。

8.开发中常用的指令有哪些?

v-model:一般用在表达输入,很轻松的实现表单控件和数据的双向绑定

v-html:更新元素的innerHTML

v-show与v-if:条件渲染,注意二者区别

v-on:click:可以简写为@click,@绑定一个事件。如果事件触发了,就可以指定事件的处理函数

v-for:基于源数据多次渲染元素或模板

v-bind:当表达式的值改变时,将其产生的连带影响,响应式地作用于DOM语法

v-bind:title=”msg”简写:title="msg"

9.绑定class的数组用法

1.对象方法v-bind:class="{'orange':isRipe, 'green':isNotRipe}”

2.数组方法v-bind:class="[class1,class2]"

3.行内v-bind:style="{color:color,fontSize:fontSize+'px'}”

10.路由跳转方式

1.router-link标签会渲染为标签,咋填template中的跳转都是这种;

2.另一种是编辑是导航,也就是通过js跳转比如router.push('/home')

12. computed和watch有什么区别

computed

computed是计算属性,也就是计算值,它更多用于计算值的场景

computed具有缓存性,computed的值在getter执行后是会缓存的,只有在它依赖的属性值改变之后,下一次获取computed的值时重新调用对应的getter来计算

computed适用于计算比较消耗性能的计算场景

watch

watch更多的是[观察]的作用,类似于某些数据的监听回调,用于观察props $emit或者本组件的值,当数据变化时来执行回调进行后续操作

无缓存性,页面重新渲染时值不变化也会执行

小结

当我们要进行数值计算,而且依赖于其他数据,那么把这个数据设计为computed

如果你需要在某个数据变化时做一些事情,使用watch来观察这个数据变化。

13. vue组件的scoped属性的作用

在style标签上添加scoped属性,以表示它的样式作用于当下的模块,很好的实现了样式私有化的目的;

但是也得慎用:样式不易(可)修改,而很多时候,我们是需要对公共组件的样式做微调的;

解决办法:

①:使用混合型的css样式:(混合使用全局跟本地的样式) /* 全局样式 */ /* 本地样式 */

②:深度作用选择器(>>>)如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符: .a >>> .b { /* ... */ }

14. vue是渐进式的框架的理解:( 主张最少,没有多做职责之外的事 )

Vue的核心的功能,是一个视图模板引擎,但这不是说Vue就不能成为一个框架。如下图所示,这里包含了Vue的所有部件,在声明式渲染(视图模板引擎)的基础上,我们可以通过添加组件系统、客户端路由、大规模状态管理来构建一个完整的框架。更重要的是,这些功能相互独立,你可以在核心功能的基础上任意选用其他的部件,不一定要全部整合在一起。可以看到,所说的“渐进式”,其实就是Vue的使用方式,同时也体现了Vue的设计的理念

在我看来,渐进式代表的含义是:主张最少。视图模板引擎

每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。

比如说,Angular,它两个版本都是强主张的,如果你用它,必须接受以下东西:

必须使用它的模块机制- 必须使用它的依赖注入- 必须使用它的特殊形式定义组件(这一点每个视图框架都有,难以避免)

所以Angular是带有比较强的排它性的,如果你的应用不是从头开始,而是要不断考虑是否跟其他东西集成,这些主张会带来一些困扰。

Vue可能有些方面是不如React,不如Angular,但它是渐进的,没有强主张,你可以在原有大系统的上面,把一两个组件改用它实现,当jQuery用;也可以整个用它全家桶开发,当Angular用;还可以用它的视图,搭配你自己设计的整个下层用。也可以函数式,都可以,它只是个轻量视图而已,只做了自己该做的事,没有做不该做的事,仅此而已。

渐进式的含义,我的理解是:没有多做职责之外的事。

15.vue.js的两个核心是什么(数据驱动、组件系统。)

数据驱动:Object.defineProperty和存储器属性: getter和setter(所以只兼容IE9及以上版本),可称为基于依赖收集的观测机制,核心是VM,即ViewModel,保证数据和视图的一致性。

16.vue常用修饰符

修饰符分为:一般修饰符,事件修身符,按键、系统

①一般修饰符:

.lazy:v-model 在每次 input 事件触发后将输入框的值与数据进行同步 。你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步

<inputv-model.lazy="msg">

.number

<inputv-model.number="age"type="number">

.trim

1.如果要自动过滤用户输入的首尾空白字符<inputv-model.trim='trim'>

② 事件修饰符

<av-on:click.stop="doThis"></a><!-- 阻止单击事件继续传播 -->

<formv-on:submit.prevent="onSubmit"></form> <!-- 提交事件不再重载页面 -->

<av-on:click.stop.prevent="doThat"></a> <!-- 修饰符可以串联 -->

<formv-on:submit.prevent></form> <!-- 只有修饰符 -->

<divv-on:click.capture="doThis">...</div> <!-- 添加事件*时使用事件捕获模式 -->  <!-- 即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理 -->

<divv-on:click.self="doThat">...</div> <!-- 只当在 event.target 是当前元素自身时触发处理函数 --> <!-- 即事件不是从内部元素触发的 -->

<av-on:click.once="doThis"></a> <!-- 点击事件将只会触发一次 -->

③按键修饰符

全部的按键别名:

.enter.tab.delete(捕获“删除”和“退格”键).esc.space.up.down.left.right.ctrl.alt.shift.meta

<inputv-on:keyup.enter="submit">或者<input@keyup.enter="submit">

④系统修饰键 (可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的*。)

.ctrl.alt.shift.meta

<input@keyup.alt.67="clear">或者<div@click.ctrl="doSomething">Dosomething</div><!-- Ctrl + Click -->

20.Vue 组件中 data 为什么必须是函数

vue组件中data值不能为对象,因为对象是引用类型,组件可能会被多个实例同时引用。

如果data值为对象,将导致多个实例共享一个对象,其中一个组件改变data属性值,其它实例也会受到影响。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
绿茶要猛冲吗,绿茶鲜嫩不需要(绿茶冲泡的正确方式) 绿茶为什么越好越不耐泡 绿茶要泡几泡?哪种绿茶最耐泡? 哪种绿茶最耐泡 职场故事:美女职员遇到暴躁老板 老板脾气坏得要命,我该怎么办 老板老爱发脾气,我们应该怎么做呀? 害怕老总发脾气怎么办 网络上用名字测和另一个人的关系准确吗 一个男生把自己的名字和另一个人的名字放在一起,中间放个"&amp;"符号... Vue的生命周期 100吨的机器等于多少克,怎么算的 100吨等于几千克 30安的空开多少钱 《你为我着迷》当中的所有歌曲的完整版以及相关的歌词(最好是中文) 三星S8不能设置企业邮箱 增加了outlook也不能设置邮箱服务器_百度知 ... office outlook配置公司邮箱不成功,不能成功打开 如何在outlook中设置企业邮箱,我按步骤做了,为什么总是出现服务器验证错... 微信投票什么价格怎么购投票 华为手机外放没有声音是什么情况 西餐烹饪专业学什么 西餐烹饪专业都学什么内容 烹饪原料知识的介绍 房间没wifi信号怎么办 常见的故事类型有哪几种 正定技校有哪些专业 2700千克减9000克等于多少千克? 1吨一9oo克等于多少?急 没了,打开微信是注册和登录怎么办能恢复到以前吗? 鲫鱼胆小,吃口谨慎,野钓鲫鱼时掌握哪些技巧更易爆护? 一枝粉笔长90厘米对吗? 会计面试简短自我介绍 iOS王者荣耀助手的对局先知怎么开 oppor15星空紫 你知道怎样装修开放式厨房吗? 我怎么感觉一天头都是晕晕的,该怎么办才好? 北京华星世纪科技有限公司怎么样? 哪里生产的山梨酸钾质量好 世界上最漂亮的虫子是什么 微信投票什么价格怎么购投票 寡人之于国也的中心思想 Heppenheim在德国的哪里? 【合集】校园电视剧国产,【在线观看】免费百度云资源 总路程等于什么加减乘除什么等于什么加减乘除等于相遇时间等于什么加 ... 盘点校园爱情电视剧排行榜前十名,【在线观看】免费百度云资源 韵达快递隐私投递号码怎么取消- 问一问 打快递面单的时候面单的号码会被隐藏怎么修改- 问一问 邮局汇款要身份证么? ( )×( )=总路程,( )+( )=总路程 用身份证照片去邮政用汇票取钱可以吗 上邮政汇款需要身份证吗???