2020 Vue经典面试题八大类掌握了面试必过 --加油!-前端-E先生的博客
Java
MySQL
大数据
Python
前端
黑科技
大语言模型
    首页 >> 互联网 >> 前端

2020 Vue经典面试题八大类掌握了面试必过 --加油!

[导读]:(一)VUE经典基础(1) 1.mvvm 框架是什么? model and view view-model的简称 model数据数据修改和操作的业务逻辑,view为UI组件,通过model里面的数据模型转化为UI。 2.vue的优点是什么?(为什么大部分...
  (一)VUE经典基础(1)
 
  1.mvvm框架是什么?
 
  model and view view-model的简称model数据数据修改和操作的业务逻辑,view为UI组件,通过model里面的数据模型转化为UI。
 
  2.vue的优点是什么?(为什么大部分公司选择vue)
 
  Vue.js是一个优秀的前端界面开发JavaScript库,它之所以非常火,是因为有众多突出的特点,其中主要的特点有以下几个。
 
  1)轻量级的框架
 
  Vue.js能够自动追踪依赖的模板表达式和计算属性,提供MVVM数据绑定和一个可组合的组件系统,具有简单、灵活的API,使读者更加容易理解,能够更快上手。
 
  2)双向数据绑定
 
  声明式渲染是数据双向绑定的主要体现,同样也是Vue.js的核心,它允许采用简洁的模板语法将数据声明式渲染整合进DOM。
 
  3)指令
 
  Vue.js与页面进行交互,主要就是通过内置指令来完成的,指令的作用是当其表达式的值改变时相应地将某些行为应用到DOM上。
 
  4)组件化
 
  组件(Component)是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。
 
  在Vue中,父子组件通过props传递通信,从父向子单向传递。子组件与父组件通信,通过触发事件通知父组件改变数据。这样就形成了一个基本的父子通信模式。
 
  在开发中组件和HTML、JavaScript等有非常紧密的关系时,可以根据实际的需要自定义组件,使开发变得更加便利,可大量减少代码编写量。
 
  组件还支持热重载(hotreload)。当我们做了修改时,不会刷新页面,只是对组件本身进行立刻重载,不会影响整个应用当前的状态。CSS也支持热重载。
 
  5)客户端路由
 
  Vue-router是Vue.js官方的路由插件,与Vue.js深度集成,用于构建单页面应用。Vue单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来,传统的页面是通过超链接实现页面的切换和跳转的。
 
  6)状态管理
 
  状态管理实际就是一个单向的数据流,State驱动View的渲染,而用户对View进行操作产生Action,使State产生变化,从而使View重新渲染,形成一个单独的组件。
 
  3.vue的两个核心点是什么?
 
  数据驱动:ViewModel,保证数据和视图的一致性。
 
  组件系统:应用类UI可以看作全部是由组件树构成的。
 
  1、数据驱动,也叫双向数据绑定。
 
  Vue.js数据观测原理在技术实现上,利用的是ES5Object.defineProperty和存储器属性:getter和setter(所以只兼容IE9及以上版本),可称为基于依赖收集的观测机制。核心是VM,即ViewModel,保证数据和视图的一致性。
 
  2、组件系统。
 
  .vue组件的核心选项:
 
  1、模板(template):模板声明了数据和最终展现给用户的DOM之间的映射关系。
 
  2、初始数据(data):一个组件的初始数据状态。对于可复用的组件来说,这通常是私有的状态。
 
  3、接受的外部参数(props):组件之间通过参数来进行数据的传递和共享。
 
  4、方法(methods):对数据的改动操作一般都在组件的方法内进行。
 
  5、生命周期钩子函数(lifecycle hooks):一个组件会触发多个生命周期钩子函数,最新2.0版本对于生命周期函数名称改动很大。
 
  6、私有资源(assets):Vue.js当中将用户自定义的指令、过滤器、组件等统称为资源。一个组件可以声明自己的私有资源。私有资源只有该组件和它的子组件可以调用。
 
  4.三大框架的优缺点?(vue、Angular、React)
 
  一、Vue.js:
 
  其实Vue.js不是一个框架,因为它只聚焦视图层,是一个构建数据驱动的Web界面的库。
 
  Vue.js通过简单的API(应用程序编程接口)提供高效的数据绑定和灵活的组件系统。
 
  Vue.js的特性如下:
 
  1.轻量级的框架
 
  2.双向数据绑定
 
  3.指令
 
  4.插件化
 
  优点:1.简单:官方文档很清晰,比Angular简单易学。
 
  2.快速:异步批处理方式更新DOM。
 
  3.组合:用解耦的、可复用的组件组合你的应用程序。
 
  4.紧凑:~18kb min+gzip,且无依赖。
 
  5.强大:表达式&无需声明依赖的可推导属性(computed properties)。
 
  6.对模块友好:可以通过NPM、Bower或Duo安装,不强迫你所有的代码都遵循Angular的各种规定,使用场景更加灵活。
 
  缺点:1.新生儿:Vue.js是一个新的项目,没有angular那么成熟。
 
  2.影响度不是很大:google了一下,有关于Vue.js多样性或者说丰富性少于其他一些有名的库。
 
  3.不支持IE8:
 
  二、angularJS:
 
  angularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中。
 
  angularJS的特性如下:
 
  1.良好的应用程序结构
 
  2.双向数据绑定
 
  3.指令
 
  4.HTML模板
 
  5.可嵌入、注入和测试
 
  优点:1.模板功能强大丰富,自带了极其丰富的angular指令。
 
  2.是一个比较完善的前端框架,包含服务,模板,数据双向绑定,模块化,路由,过滤器,依赖注入等所有功能;
 
  3.自定义指令,自定义指令后可以在项目中多次使用。
 
  4.ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助。
 
  5.angularjs是互联网巨人谷歌开发,这也意味着他有一个坚实的基础和社区支持。
 
  缺点:1.angular入门很容易但深入后概念很多,学习中较难理解.
 
  2.文档例子非常少,官方的文档基本只写了api,一个例子都没有,很多时候具体怎么用都是google来的,或直接问misko,angular的作者.
 
  3.对IE6/7兼容不算特别好,就是可以用jQuery自己手写代码解决一些.
 
  4.指令的应用的最佳实践教程少,angular其实很灵活,如果不看一些作者的使用原则,很容易写出四不像的代码,例如js中还是像jQuery的思想有很多dom操作.
 
  5.DI依赖注入如果代码压缩需要显示声明.
 
  三、React:
 
  React主要用于构建UI。你可以在React里传递多种类型的参数,如声明代码,帮助你渲染出UI、也可以是静态的HTML DOM元素、也可以传递动态变量、甚至是可交互的应用组件。
 
  React特性如下:
 
  1.声明式设计:React采用声明范式,可以轻松描述应用。
 
  2.高效:React通过对DOM的模拟,最大限度地减少与DOM的交互。
 
  3.灵活:React可以与已知的库或框架很好地配合。
 
  优点:1.速度快:在UI渲染过程中,React通过在虚拟DOM中的微操作来实现对实际DOM的局部更新。
 
  2.跨浏览器兼容:虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API,甚至在IE8中都是没问题的。
 
  3.模块化:为你程序编写独立的模块化UI组件,这样当某个或某些组件出现问题是,可以方便地进行隔离。
 
  4.单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React视图库的开发而被Facebook概念化。
 
  5.同构、纯粹的javascript:因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript的执行,预渲染你的应用有助于搜索引擎优化。
 
  6.兼容性好:比如使用RequireJS来加载和打包,而Browserify和Webpack适用于构建大型应用。它们使得那些艰难的任务不再让人望而生畏。
 
  缺点:1.React本身只是一个V而已,并不是一个完整的框架,所以如果是大型项目想要一套完整的框架的话,基本都需要加上ReactRouter和Flux才能写大型应用。
 
  5.vue和jQuery的区别?
 
  6.渐进式框架的理解?
 
  7.单页面应用和多页面应用区别及优缺点?
 
  8.SPA首屏加载慢如何解决?
 
  9.scss的安装以及使用?
 
  10.vue常用的UI组件库?
 
  11.vue构建初始化工程步骤?

本文来自E先生的博客,如若转载,请注明出处:https://javajz.cn

留言区

联系人:
手   机:
内   容:
验证码:

历史留言

欢迎加Easy的QQ