Vue VS React ,Vue2->Vue3

目录

一、Vue VS React

1.1概况

1.2比较

二、Vue2 VS Vue3

2.1基础回答

2.2加分回答

2.3进阶回答


一、Vue VS React

1.1概况

如果面试遇到“VUE和React有什么区别”这种问题,那么意味着在面试中已经具有优势,此问题应该属于面试后阶段的问题。

两者作为前端都要学习,React比Vue更难一点,国外偏向于React,国内偏向于Vue,大厂前端更偏向于React一些。

Vue设计理念是简单易懂,更符合传统的前端开发模式,template、style、script分离开来,层次鲜明,而React的出现便是颠覆传统的前端开发模式。

1.2比较

共同点:(宏观上)

  • 组件化
  • 单向数据流,数据驱动视图
  • Virtual DOM Diff算法 操作DOM
  • 社区成熟,都支持SSR

不同点:

  • Vue使用模板拥抱html,React使用JSX拥抱JS(all in js)
  • Vue"自动挡",React"手动挡"(api和生态)

总结:Vue对新手更友好,简单易懂,能自动检测数据改变,从而改变视图,官方文档很全面;React涉及很多原生js,需要setState()去“手动”的更新视图,还需要手动做一些优化等等。故而所得,Vue比React更易于进行前端开发工作。

那么,为什么大公司更喜欢使用React呢?

React比起Vue上限更高、下限更低,更易于控制、优化,比如js变量绑定到css之中,大公司倾向于使用一个更加厉害的框架进行开发。


二、Vue2 VS Vue3

此板块为vue2到vue3的变化以及怎样才能在面试时回答此问题更具水平?

2.1基础回答

  1. 因为改成组合式api故而没有this
  2. 生命周期没有create,setup等同于create,卸载改成unmount
  3. vue3中v-if高于v-for的优先级
  4. 根实例的创建从new app变成了createApp方法
  5. 一些全局注册,比如mixin,注册全局组件,use改成了用app实例调用,而不是vue类调用
  6. 新增了传送门teleport组件
  7. template模板可以不包在一个根div中

2.2加分回答

  1. 响应式原理改成了用proxy,解决了数组无法通过下标修改,无法监听到对象属性的新增和删除的问题。也提升了响应式的效率
  2. 可以额外叙述vue3并不是完全抛弃 了defineProperty,通过reactive定义的响应式数据使用proxy包装出来,而 ref 还是用的defineProperty去给一个空对象,定义了一个value属性来做的响应式
  3. 组合式api的写法下,源码改成了函数式编程,方便按需引入,因为tree-shaking功能必须配合按需引入写法。所以vue3更好地配合tree-shaking能让打包体积更小
  4. 性能优化,增加了静态节点标记。会标记静态节点,不对静态节点进行比对。从而增加效率。(可以说静态节点怎么标记的,什么情况标1,什么情况标2...)

2.3进阶回答(超体现水平,但需深入了解其原理)

  1. vue3不推荐使用mixin进行复用逻辑提取,而是推荐写成hook
  2. v-model应用于组件时,监听的事件和传递的值改变
  3. ts更好地配合

冲冲冲!

  • 40
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue-React组件库是一个同时支持VueReact的UI组件库,可以在VueReact项目中使用。下面以Element-React为例,介绍如何使用Vue-React组件库。 1. 安装Element-React:可以使用npm或yarn安装,命令如下: ``` npm install element-react --save 或 yarn add element-react ``` 2. 引入样式文件:在主入口文件中引入Element-React的样式文件,如下: ``` import 'element-react/dist/theme-chalk/index.css'; ``` 3. 引入组件:在VueReact组件中按需引入需要使用的Element-React组件,如下: 在Vue组件中: ``` <template> <div> <el-button>Vue Button</el-button> </div> </template> <script> import { Button } from 'element-react'; export default { components: { 'el-button': Button } } </script> ``` 在React组件中: ``` import { Button } from 'element-react'; class MyComponent extends React.Component { render() { return ( <div> <Button>React Button</Button> </div> ) } } ``` 4. 使用组件:在VueReact组件中使用引入的Element-React组件,如下: 在Vue组件中: ``` <template> <div> <el-button>Vue Button</el-button> </div> </template> ``` 在React组件中: ``` import { Button } from 'element-react'; class MyComponent extends React.Component { render() { return ( <div> <Button>React Button</Button> </div> ) } } ``` 需要注意的是,不同的Vue-React组件库使用方法略有不同,需要根据具体组件库的文档进行使用。同时,也需要根据项目需要选择合适的组件库,避免出现兼容性和功能不匹配的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值