前端面试相关(非本人整理)

1、vue的生命周期函数?

vue生命周期的不同阶段通过对应的钩子函数来实现组件数据管理和DOM渲染两大重要功能。

创建阶段:

beforecreate:实例已经初始化,但不能获取DOM节点。(没有data,没有el)

created:实例已经创建,仍然不能获取DOM节点。(有data,没有el)

载入阶段:

beforemount:模板编译完成,但还没挂载到界面上。(有data,有el)

mounted:编译好的模板已挂载到页面中(数据和DOM都已经渲染出来)。

更新阶段:

beforeupdate:数据发生变化立即调用,此时data中数据是最新的,但页面上数据仍然是旧的(检测到数据更新时,但DOM更新前执行)。

updated:更新结束后执行,此时data中的值和页面上的值都是最新的。

销毁阶段:

beforedestroy:当要销毁vue实例时,在销毁之前执行。

destroy:在销毁vue实例时执行。

2、vue中key的作用?

·  key是为Vue中的vnode标记的唯一id,通过这个key,我们的diff操作可以更准确、更快速。

·  diff算法的过程中,先会进行新旧节点的首尾交叉对比,当无法匹配的时候会用新节点的key与旧节点进行比对,然后超出差异。

·  简单来说,主要是为了高效的更新虚拟DOM。另外vue中在使用相同标签名元素的过渡切换时,也会使用到key属性,其目的也是为了让vue可以区分它们

3、vue中Data,computed和watch的作用和区别?

·  computed是计算属性,具有缓存性。

当页面中有某些数据依赖其他数据进行变动的时候,可以使用计算属性computed

用于依赖发生变化时,触发属性重新计算。

Computed本质是一个具备缓存的watcher,依赖的属性发生变化就会更新视图。 适用于计算比较消耗性能的计算场景。

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

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

Watch没有缓存性,更多的是观察的作用,可以监听某些数据执行回调。当我们需要深度监听对象中的属性时,可以打开deeptrue选项,这样便会对对象中的每一项进行监听。这样会带来性能问题,优化的话可以使用字符串形式监听,如果没有写到组件中,不要忘记使用unWatch手动注销。

·  应用场景:

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

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

4、vue项目中的父子组件之间的传值

父组件与子组件传值
父组件通过标签上面定义传值  eg='data'  父组件中 data(){return {data:'egdata'}}
子组件通过props方法接受数据 props:['eg']   props 中添加了元素之后,就不需要在 data 中再添加变量了

·子组件向父组件传递数据
子组件通过$emit方法传递参数

 

5、vue项目路由跳转

声明式(标签跳转) 编程式( js跳转)

1. 直接修改地址栏中的路由地址 ②通过router-link实现跳转

 

③通过js的编程的方式

 

6、vuex是什么?怎么使用?在哪些场景中使用?

vuex 就是一个仓库,仓库里放了很多对象。

其中 state 存放的是数据状态,不可以直接修改里面的数据。

getters类似vue的计算属性,主要用来过滤一些数据。

mutations:存放的是动态修改Vuexstate中保存的数据状态的方法。

actions:保存的触发mutations中方法的方法,可以理解为通过将mutations里面处里数据的方法变成可异步的处理数据的方法,简单的说就是异步操作数据。

一般什么样的数据会放在 State 中呢?

目前主要有两种数据会使用 vuex 进行管理: 1、组件之间全局共享的数据 2、通过后端异步请求的数据 比如做加入购物车、登录状态等都可以使用Vuex来管理数据状态

怎么使用Vuex? main.js引入store,注入。新建了一个目录store,… export

场景有:单页应用中,组件之间的状态、音乐播放、登录状态、加入购物车

7、vuex有哪几种属性?

vuex的State特性
A、Vuex就是一个仓库,仓库里面放了很多对象。其中state就是数据源存放地,对应于一般Vue对象里面的data
B、state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新
C、它通过mapState把全局的 state 和 getters 映射到当前组件的 computed 计算属性中

vuex的Getter特性

A、getters 可以对State进行计算操作,它就是Store的计算属性
B、 虽然在组件内也可以做计算属性,但是getters 可以在多组件之间复用
C、 如果一个状态只在一个组件内使用,是可以不用getters

vuex的Mutation特性

更改 vuex store 中修改状态的唯一办法就是提交 mutation,可以在回 调函数中修改 store 中的状态。

vuex的Action特性

Action 类似于 mutation,不同的是 action 提交的是 mutation,不是 直接变更状态,可以包含任意异步操作。

 

8、uni-app的生命周期

uni-app

1. onLoad:首次进入页面加载时触发,可以在 onLoad 的参数中获取打开当前页面路径中的参数。

2. onShow:加载完成后、后台切到前台或重新进入页面时触发

3. onReady:页面首次渲染完成时触发

4. onHide:从前台切到后台或进入其他页面触发

5. onUnload:页面卸载时触发

6. onPullDownRefresh:监听用户下拉动作

7. onReachBottom:页面上拉触底事件的处理函数

8. onShareAppMessage:用户点击右上角转发

 

9、uni-app如何监听页面滚动

使用 onPageScroll 监听

10、uni-app本地存储数据和接收数据的方式?

存储:uni.setStorage({key:“属性名”,data:“值”})
接收:uni.getStorage({key:“属性名”,success(e){e.data//这就是你想要取的token}})

11、最后可以结合刷单、电商项目,扩展一些列表加载、图片懒加载、页面刷新卡顿等相关问题。

 

 

 

posted @ 2022-03-03 14:06  乌乌丢丢  阅读(44)  评论(0编辑  收藏  举报