vue高频、常见面试题

1.什么是mvvm?

vm(视图模型层)通过接口从后台m层请求数据,实现m和v层数据的双向绑定

2.mvvm 和 mvc 区别?

mvvm本质上就是mvc的改进版,将c层替换成vm,更好的现了前后端的分离

3.vue 的优点是什么?

1.低耦合
2.可重用性
3.独立开发
4.可测试

4.请详细说下你对 vue 生命周期的理解?

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

5.组件之间的传值?

1.父组件通过标签上面定义传值
2.引入子组件
3.子组件通过props方法接受数据
在这里插入图片描述

6.子组件向父组件传递数据

1.子组件通过$emit方法传递参数
2.引入子组
3.接受父组件传值
在这里插入图片描述

7.active-class 是哪个组件的属性?

vue-router 模块的 router-link 组件。

8.嵌套路由怎么定义?

一级路由里面使用children数组配置子路由

9.路由之间跳转?

1.声明式(标签跳转) router-link :to=“index”
2.编程式( js 跳转) router.push(‘index’)

10.懒加载(按需加载路由)(常考)

webpack 中提供了 require.ensure()来实现按需加载
在这里插入图片描述

11.vuex 是什么?怎么使用?哪种功能场景使用它?

vue 框架中状态管理。在 main.js 引入 store,注入。新建了一个目录 store,…… export 。场景有:单页应用中,组件之间的状态。音乐播放、登录状态、加入购物车

12.vue-router 有哪几种导航钩子?

全局导航钩子
router.beforeEach(to, from, next),
router.beforeResolve(to, from, next),
router.afterEach(to, from ,next)
组件内钩子
beforeRouteEnter,
beforeRouteUpdate,
beforeRouteLeave
单独路由独享组件
beforeEnter

13.自定义指令(v-check, v-focus) 的方法有哪些? 它有哪些钩子函数? 还有哪些钩子函数参数

全局定义指令:在 vue 对象的 directive 方法里面有两个参数, 一个是指令名称, 另一个是函数。
组件内定义指令:directives
钩子函数: bind(绑定事件出发)、inserted(节点插入时候触发)、update(组件内相关更新)
钩子函数参数: el、binding

14. 说出至少 4 种 vue 当中的指令和它的用法

v-if(判断是否隐藏)、v-for(把数据遍历出来)、v-bind(绑定属性)、v-model(实现双向绑定)

15.vue 的双向绑定的原理是什么(常考)

是采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的 setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调
在这里插入图片描述

vuex 相关

16.vuex 有哪几种属性

5 种,state、getter、mutation、action、module

17.vuex 的 store 特性是什么

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

18.vuex 的 getter 特性是什么

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

19.vuex 的 mutation 特性是什么

更改Vuex的store中的状态的唯一方法是提交mutation

20.vuex 的 action 是什么?

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

21.vue 中 ajax 请求代码应该写在组件的 methods 中还是 vuex 的 action 中

如果请求来的数据不是被其他组件公用,仅在请求的组件内使用,就不需要放入 vuex 的 state 里

如果被其他地方复用,请求放入 action 里,方便复用,并包装成 promise 返回

22.不用 vuex 会带来什么问题

可维护性会下降,可读性下降,增加耦合

23.vuex 原理

vuex 仅仅是作为 vue 的一个插件而存在,不像 Redux,MobX 等库可以应用于所有框架,vuex 只能使用在 vue 上,很大的程度是因为其高度依赖于 vue 的 computed 依赖检测系统以及其插件系统,

回答: 根据引用,这份面试题涵盖了Vue.js的基础知识和高级概念,包括组件、生命周期、异步操作和跨域请求,以及Vue框架的优势、vue-router和服务端渲染(SSR)等。对于准备Vue.js面试的人来说,这份问题列表应该是非常有用的资源。 在回答你提到的其他问题之前,让我先回答第32和第33个问题。根据引用,GET请求和POST请求在底层都是基于TCP/IP协议实现的,都可以实现客户端和服务器端的双向交互。最本质的区别在于约定和规范。GET请求用于获取资源,进行查询操作,而POST请求用于传输实体对象,用于增删改操作。约定上,GET请求将参数拼接到URL上进行参数传递,而POST请求将参数写入请求正文中传递。这样的约定和规范有助于保持请求的语义和一致性。 关于第33个问题,数组去重,可以使用不同的方法来实现。一种常见的方法是使用Set数据结构,因为Set只会存储不重复的值。可以将数组转换为Set,然后再将Set转换回数组即可。另一种方法是使用循环和条件判断,遍历数组,将不重复的元素添加到一个新数组中。这样可以去除数组中的重复元素。 希望这些回答对你有帮助。如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [2023前端vue高频面试题](https://blog.csdn.net/qq_27244301/article/details/129619172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [2023最新高频前端面试题总结(附答案)](https://blog.csdn.net/jewels_w/article/details/125899379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值