当前位置: 首页 > news >正文

网易web前端vue面试题总结,内部花式玩转vue

今年的金九银十已悄无声息到来了,对于从事项目任务的我们,也迎来了最忙的九月份。送上一份面试题总结,祝你拿到心仪office

一、什么是MVVM?

MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。

在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。

ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

面试必备:2019Vue经典面试题总结(含答案)

二、mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

mvc和mvvm其实区别并不大。都是一种设计思想。主要就是mvc中Controller演变成mvvm中的viewModel。mvvm主要解决了mvc中大量的DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。

区别:vue数据驱动,通过数据来显示视图层而不是节点操作。

场景:数据操作比较多的场景,更加便捷

三、vue的优点是什么?

低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。

可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。

独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。

可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。

四、 组件之间的传值?

父组件与子组件传值

父组件通过标签上面定义传值

子组件通过props方法接受数据

子组件向父组件传递数据

子组件通过$emit方法传递参数

五、路由之间跳转

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

六、vue.cli中怎样使用自定义的组件?有遇到过哪些问题吗?

第一步:在components目录新建你的组件文件(indexPage.vue),script一定要export default {}

第二步:在需要用的页面(组件)中导入:import indexPage from '@/components/indexPage.vue'

第三步:注入到vue的子组件的components属性上面,components:{indexPage}

第四步:在template视图view中使用,

例如有indexPage命名,使用的时候则index-page

七、vue如何实现按需加载配合webpack设置

面试必备:2019Vue经典面试题总结(含答案)

 

webpack中提供了require.ensure()来实现按需加载。以前引入路由是通过import 这样的方式引入,改为const定义的方式进行引入。

不进行页面按需加载引入方式:import home from '../../common/home.vue'

进行页面按需加载的引入方式:const home = r => require.ensure( [], () => r (require('../../common/home.vue')))

八、vuex面试相关

(1)vuex是什么?怎么使用?哪种功能场景使用它?

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

(2)vuex有哪几种属性?

有五种,分别是 State、 Getter、Mutation 、Action、 Module

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特性

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

(3)不用Vuex会带来什么问题?

可维护性会下降,想修改数据要维护三个地方;

可读性会下降,因为一个组件里的数据,根本就看不出来是从哪来的;

增加耦合,大量的上传派发,会让耦合性大大增加,本来Vue用Component就是为了减少耦合,现在这么用,和组件化的初衷相背。

九、 v-show和v-if指令的共同点和不同点

v-show指令是通过修改元素的display的CSS属性让其显示或者隐藏;

v-if指令是直接销毁和重建DOM达到让元素显示和隐藏的效果;

使用v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理。

面试必备:2019Vue经典面试题总结(含答案)

十、 如何让CSS只在当前组件中起作用

将当前组件的<style>修改为<style scoped>

十一、<keep-alive> </keep-alive>的作用是什么?

包裹动态组件时,会缓存不活动的组件实例,主要用于保留组件状态或避免重新渲染。

十二、Vue中引入组件的步骤?

1)采用ES6的import ... from ...语法或CommonJS的require()方法引入组件

2)对组件进行注册,代码如下

// 注册Vue.component('my-component', { template:'

A custom component!

'})

3)使用组件<my-component> </my-component>

已整理好PDF文档哦,记得关注我获取,感谢您的朗读。

关注获取

关注获取

原文来自:https://zhuanlan.zhihu.com/c_1152947740601491456

 

相关文章:

  • 两年工作经验成功面试阿里P6总结(配答案)
  • 重磅!滴滴跨端框架Chameleon 1.0正式发布(学不动啦...)
  • 为什么那些连Bug都修复不利索的人,却可以跳槽进入BAT大厂?
  • 【精辟】前端30道JavaScript面试题(配答案)
  • React高频面试题梳理,看看面试怎么答?
  • Stack Overflow 2019程序员调查---最热门的不是Python
  • 透过现象看本质: 常见的前端架构风格和案例
  • JS 服务器推送技术 WebSocket 入门指北
  • 前端 Web Workers 到底是什么?
  • 探寻浏览器渲染的秘密
  • 【手把手】15分钟搭一个企业级脚手架
  • 不要再问我React Hooks能否取代Redux了
  • 一文搞懂 Webpack 多入口配置
  • 用生动有趣的emoij美化你的commit log
  • 一文吃透React SSR服务端同构渲染
  • angular组件开发
  • input实现文字超出省略号功能
  • mysql_config not found
  • Spring Cloud Feign的两种使用姿势
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vue:响应原理
  • 电商搜索引擎的架构设计和性能优化
  • 读懂package.json -- 依赖管理
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 通过几道题目学习二叉搜索树
  • 学习笔记:对象,原型和继承(1)
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • "无招胜有招"nbsp;史上最全的互…
  • # centos7下FFmpeg环境部署记录
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #pragma data_seg 共享数据区(转)
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (175)FPGA门控时钟技术
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (第一天)包装对象、作用域、创建对象
  • (二)springcloud实战之config配置中心
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net wcf memory gates checking failed
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET命令行(CLI)常用命令
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ASP]青辰网络考试管理系统NES X3.5
  • [c#基础]DataTable的Select方法
  • [CQOI 2011]动态逆序对
  • [Django ]Django 的数据库操作