前端面试题六(主流框架异同篇)

241 阅读2分钟

1.react跟vue的区别?

相同点:

  1. 都有组件化开发和Virtual DOM (提高程序的运行效率)
  2. 都支持props进行父子组件间数据通信
  3. 都支持数据驱动试图,不直接操作真是DOM,更新状态数据界面就自动更新
  4. 都支持服务器端渲染
  5. 都支持natived 的方案,React的React Native, Vue 的Weex, (都支持原生的跨平台运用)

不同点:

  1. 数据绑定:vue实现了数据的双向邦定,react数据流动是单向的
  2. 组件的写法不一样,React推荐的做法是JSX,也就是把HTML和CSS全部都写进Javascript了,即 'all in js', Vue推荐的做法是 webpack + vue-loader的单文件组件格式,即 html,css,js 写在同一个文件
  3. state对象在React应用中不可变的,需要使用setState方法更新状态,在vue中 state对象不是必须的,数据由data属性在vue对象中管理
  4. virtual DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树,而对于React而言,每当应用的状态改变时,全部组件都会重新渲染,所以react中会需要shouComponentUpdata 这个生命周期函数方法来进行控制
  5. React严格上只针对MVC的view层,Vue则是MVVM模式

2.Redux 管理状态的机制

对Redux的基本理解

  1. redux是一个独立专门用于做状态管理的JS库,不是react插件库
  2. 它可以用在 react,angular,vue等项目中,但基本与react配合使用
  3. 作用:集中式管理react应用中多个组件共享的状态和从后台获取的数据

Redux的工作原理

1. redux的结构 三个模块:

  1. store (内部管理着状态)
  2. reducers (根据老的状态生成新的状态)
  3. action creator (专门生成action对象的)

2.store内部管理着state状态, react组件跟 reducers的通信就根据store来的,store相当于桥梁,提供了两个方法,一个读 getState(),一个更新dispatch()

Redux 使用扩展

  1. 使用 react-redux 简化 redux 的编码
  2. 使用 redux-thunk 实现 redux 的异步编程
  3. 使用 Redux DevTools 实现 chrome 中的调试