常见的开放性问题

122 阅读3分钟
  1. 简单介绍下自己
  2. 如何封装组件
  3. vue/react的区别, vue与原生js之间的区别

共同点:

  • 两者都是用于创建UI的JavaScript库;
  • 两者都快速轻便;
  • 都有基于组件的架构;
  • 都是用虚拟DOM;
  • 都可放入单个HTML文件中,或者成为更复杂webpack设置中的模块;
  • 都有独立但常用的路由器和状态管理库;

区别:

  • Vue组件分为全局注册和局部注册,在react中都是通过import相应组件,然后模版中引用;

  • props是可以动态变化的,子组件也实时更新,在react中官方建议props要像纯函数那样,输入输出一致对应,而且不太建议通过props来更改视图;

  • 子组件一般要显示地调用props选项来声明它期待获得的数据。而在react中不必需,另两者都有props校验机制;

  • 每个Vue实例都实现了事件接口,方便父子组件通信,小型项目中不需要引入状态管理机制,而react必需自己实现;

  • 使用插槽分发内容,使得可以混合父组件的内容与子组件自己的模板;

  • 多了指令系统,让模版可以实现更丰富的功能,而React只能使用JSX语法;

  • Vue增加的语法糖computed和watch,而在React中需要自己写一套逻辑来实现;

  • react的思路是all in js,通过js来生成html,所以设计了jsx,还有通过js来操作css,社区的styled-component、jss等;而 vue是把html,css,js组合到一起,用各自的处理方式,vue有单文件组件,可以把html、css、js写到一个文件中,html提供了模板引擎来处理。

  • react做的事情很少,很多都交给社区去做,vue很多东西都是内置的,写起来确实方便一些, 比如 redux的combineReducer就对应vuex的modules, 比如reselect就对应vuex的getter和vue组件的computed, vuex的mutation是直接改变的原始数据,而redux的reducer是返回一个全新的state,所以redux结合immutable来优化性能,vue不需要。

  • react是整体的思路的就是函数式,所以推崇纯组件,数据不可变,单向数据流,当然需要双向的地方也可以做到,比如结合redux-form,组件的横向拆分一般是通过高阶组件。而vue是数据可变的,双向绑定,声明式的写法,vue组件的横向拆分很多情况下用mixin。

  1. webpack有所了解吗
    webpack主要右input output loader plugin四个模块组成,loader是各个编译器,负责把各种文件转换成js文件,比如像css-loader ts-loader,而plugin则是做一些loader无法完成的事情,主要用于提供在打包过程中个性化设置的问题。常用的plugins有compressinWebpackPlugin, monaco-webpackPlugin等

  2. promise有所了解吗

    思路: 分别从以下几个方便敞开描述:

    主要用于解决什么问题(回调地狱)

    有什么作用:代码的具有可读性和可维护性,减轻一层层套用数据和请求的现象

    三种状态 pedding rejected fulfilled

    主要方法 reslove reject then catch all rece

  3. 项目中常用的webpack工具

  4. 项目中遇到过什么印象深刻(困难)的问题,你是如何解决它的