vue面试题8|[2024-11-14]
问题1:什么是渐进式框架?
vue.js router vuex element ...插件
vue.js 渐0 router 渐1 vuex 渐2
vue.js只是一个核心库,比如我再添加一个router或者vuex,不断让项目壮大,就是渐进式框架带来的好处。
问题2:vue2.x生命周期
1.有哪些生命周期
系统自带(8个):
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed
2.一旦进入到页面或者组件,会执行哪些生命周期,顺序是什么?
beforeCreate
created
beforeMount
mounted
3.在哪个阶段有$el,在哪个阶段有$data
beforeCreate 啥也没有
created 有data,没有el
beforeMount 有data,没有el
mounted 都有
4.如果加入keep-alive会多两个生命周期
activated、deactivated
5.如果加入了keep-alive,第一次进入组件会执行哪些生命周期?
beforeCreate
created
beforeMount
mounted
activated
6.如果加入了keep-alive,第二次或第N次进入组件会执行哪些生命周期?
只执行一个生命周期:activated
7.场景
8.源码
class Vue{ constructor(option){ options.beforeCreate.bind(this)() this.$data = options.data options.created.bind(this)() options.beforeMount.bind(this)() this.$el = document,querySelector(options.el) options.mounted.bind(this)() } }
问题3:谈谈你对keep-alive的了解
1.是什么
是vue系统自带的一个组件,功能:是用来缓存组件的。 ====> 提升性能
2.使用场景
就是用来缓存组件,提升项目的性能。具体实现比如:首页进入到详情页,如果用户在首页每次点击都是相同的,那么详情页就没有必要请求N次了,直接缓存起来就可以了,当然如果点击的不是同一个,那么就直接请求。
问题4:v-if和v-show区别
1.展示形式不同
v-if是创建一个dom节点
v-show是display:none、 block
2.使用场景不同
初次加载v-if要比v-show好,页面不会多加载盒子
频繁切换v-show要比v-if好,创建和删除的开销太大了,显示和隐藏的开销较小
问题5:v-if和v-for优先级
v-for的优先级高于v-if
***是在源码中体现的:function getElement
问题6:ref是什么?
来获取dom的
<img ref='imgs' src='../assets/logo.png' id='img'> mounted(){ console.log(document.getElementById('img')) // 一种获取dom的方式 console.log(this.$refs.imgs) }
问题7:nextTick是什么?
来获取更新后的dom内容
对于组件,是先执行同步的,再执行异步的
created(){ console.log(11) this.$nextTick(() => { console.log(333) }) } mounted(){ conosle.log(22) this.$nextTick(() => { console.log(444) }) } // 输出的结果为 11 22 333 444
组件中会出现这样的情况:数据更新了,但是视图没有更新
<button @click='btn' ref='box'> {{ str }} </button> data(){ return { str: '123' } } methods:{ btn () { this.str = 'bbbbbb' console.log(this.$refs.box.innerHTML) // '123',这里获取的是视图里面的数据,视图还没有更新 // 使用$nextTick就可以解决这个问题,获取更新后的dom数据 this.$nextTick(() => { console.log(this.$refs.box.innerHTML) // 'bbbbbb' }) } }
原文地址:https://blog.csdn.net/m0_49474690/article/details/143757759
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!