2020---Vue面试题

1,694 阅读10分钟

1. vue和react 优点与区别 

 · 模板 vs jsx 
   Vue鼓励你去写近似常规HTML的模板,写起来很接近标准HTML元素,只是多了一些属性。
   Vue鼓励你去使用HTML模板进行渲染。 React推荐你所有的模板通用JavaScript的语法扩展---JSX来书写 
 · 状态管理 VS 对象属性 
   1、如果熟悉React就会知道应用中的状态是关键的概念,有一些配套框架被设计为
    管理一个大的state对象,state对象在React应用中是不可变的,它意味着不能被直接改变,
    需要使用setState( )方法去更新状态 
   2、在Vue中,state对象并不是必须的,数据由data属性在Vue对象中进行管理。
    data参数就是应用中数据的保存者 

 ·数据流不同 
  1、Vue可以实现双向数据绑定(父子组件之间props可以双向绑定,组件与DOM之间可以通过v-model实现双向绑定)
  2、React一直不支持双向绑定,提倡的是单向数据流

 · 框架本质不同
  1、Vue本质是MVVM框架,由MVC发展而来 
  2、React是前端组件化框架,由后端组件化发展而来

vue 和 react 的区别 vuex的数据是可改变 1.vue 偏向dom渲染多一点 react 偏向 js多一点 2. vue支持双向绑定 react 提倡双向数据流 3. vue是MVVM框架 react是前端组件化框架 4. 对数据的操作 Redux使用的是不可变数据

2、Vue解决了什么问题

①**虚拟dom:**dom操作时非常耗性能的,不再使用原生的dom操作节点,极大的解放dom操作,但具体操作的还是dom,不过是换了一种方式。 ②**视图、数据、结构分离:**使数据的更改更为简单,不需要进行逻辑代码的修改,只需要操作数据就能完成相关操作。 ③**组件化:**把一个单页应用中的各种模块拆分到一个一个单独的组件中,便于开发,以及后期的维护

3、MVVM的理解

View:视图层,Model数据模型,而ViewModel是把两者建立通信的桥梁。

MVVM :数据模型的(数据双向绑定),viewModel是一个(同步view和model)的对象,
model和viewmodel之间的交互是双向的 

 因此view数据的变化会同步到Model中,而Model数据的变化也会立即反映到View上。
 可以说它们两者是实时更新的,互相影响。
 ViewModel通过双向数据绑定把View层和Model层连接了起来,
 而View和Model之间的同步工作完全是自动的,因此开发者只需要关注业务逻辑,
不需要手动操作DOM,也不需要关注数据状态的同步问题,这些都由MVVM统一管理

 MVC:controller(业务逻辑)存在的目的是确保 ( Model (业务模型)  和 View(用户界面)的同步)。
     M改变V同步更新

4、如何实现一个自定义组件,不同组件之间是如何通信的

请永远牢记vue是单向数据流

  1. Props传递数据 (常用)(父传子)
  2. $emit (组件封装用的较多)(兄弟之间的传递)
  3. attrs & listeners (监听)
  4. Provide & Inject
  5. Ref使用(dom)
  6. EventBus 
  7. Vuex通信  
  8. 路由传参

自定义组件:

创建子组件的文件,建立组件的模板,把架子搭起来,也就是在子组件中写好