博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue.js与react.js相比较的优势
阅读量:6642 次
发布时间:2019-06-25

本文共 2315 字,大约阅读时间需要 7 分钟。

vue.js的简介

vue.js是一个javascript mvvm库,它是以数据驱动和组件化的思想构建的。我们平时多用js去操作dom,vue.js则是使用了数据绑定驱动来操作dom的,也就是说创建了view和model之间的绑定后,当model数据层发生变化时,view的dom就会发生相应变化。

mvvm即是model-view-viewmodel,model和view之间的衔接交互都是通过viewmodel来实现的。viewmodel就是创建一个vue实例,vue实例是作用于某一个dom元素上的。

DOM Listeners和Data Bindings是实现双向绑定的关键。

从View层看,ViewModel中的DOM Listeners工具会帮我们监测页面上DOM元素的变化,如果有变化,则更改Model中的数据;
从Model层看,当我们更新Model中的数据时,Data Bindings工具会帮我们更新页面中的DOM元素。

React框架相比它的优势

react和vue的相似之处:

1.使用虚拟dom

2.提供了响应式和组件化的视图组件

3.关注核心库,伴随于此,有配套的路由和负责处理全局状态管理的库

比较之处:

#性能方面

1.渲染性能

渲染用户界面的时候,dom的操作成本是最高的,那为了尽可能的减少对dom的操作,Vue和React都利用虚拟DOM来实现这一点,但Vue的Virtual DOM实现(一个陷阱的叉子)的权重要轻得多,因此比React的引入开销更少。

Vue 和 React 也提供功能性组件,这些组件因为都是没有声明,没有实例化的,因此会花费更少的开销。当这些都用于关键性能的场景时,Vue 将会更快。

2.更新性能

在react中,当一个组件的状态发生变化时,它将会引起整个组件的子树都进行重新渲染,从这个组件的根部开始。那为了避免子组件不必要的重新渲染,您需要随时使用shouldComponentUpdate,并使用不可变的数据结构。 在Vue中,组件的依赖关系在它的渲染期间被自动跟踪,因此系统准确地知道哪些组件实际上需要重新渲染。这就意味着在更新方面,vue也是快于React

3.开发中

在开发中,Vue 每秒最高处理 10 帧,而 React 每秒最高处理不到 1 帧。这是由于 React 有大量的检查机制,这会让它提供许多有用的警告和错误提示信息。vue在实现这些检查时,也更加密切地关注了性能方面。

#HTML & CSS

在react中,html和css都是通过javascript编写的,所有组件的渲染都需要依靠JSX。JSX是使用xml语法编写javascript的一种语法糖

JSX的渲染功能有以下优势:

(1)你可以使用完整的编程语言javascript来实现你的视图界面

(2)工具对 JSX 的支持相比于现有可用的其他 Vue 模板还是比较先进的(比如,linting、类型检查、编辑器的自动完成)

在 Vue 中,由于有时需要用这些功能,我们也提供了 并且。然而,对于大多数组件来说,渲染功能是不推荐使用了

vue提供的是在html中写模板,优点如下:

  • 在写模板的过程中,样式风格已定并涉及更少的功能实现。
  • 模板总是会被声明的。
  • 模板中任何 HTML 语法都是有效的。
  • 阅读起来更贴合英语(比如,for each item in items)。
  • 不需要高级版本的 JavaScript 语法,来增加可读性

css的组件作用域 

除非你把组件分布在多个文件上(例如 ),要不在 React 中作用域内的 CSS 就会产生警告。非常简单的 CSS 还可以工作,但是稍微复杂点的,比如悬停状态、媒体查询、伪类选择符等要么通过沉重的依赖来重做要么就直接不能用。

而 Vue 可以让你在每个中完全访问 CSS。

<style scoped>
@
media (min-width: 250px) {
.list-container:hover {
background: orange;
}
}
</style>

这个可选 scoped 属性会自动添加一个唯一的属性(比如 data-v-21e5b78)为组件内 CSS 指定作用域,编译的时候.list-container:hover 会被编译成类似 .list-container[data-v-21e5b78]:hover

#规模

向上扩展

Vue 的路由库和状态管理库都是由官方维护支持且与核心库同步更新的

React 则是选择把这些问题交给社区维护,因此创建了一个更分散的生态系统。但相对的,React 的生态系统相比 Vue 更加繁荣

最后,Vue 提供了,能让你非常容易地构建项目,包含了 , , 甚至 。React 在这方面也提供了,但是现在还存在一些局限性:

  • 它不允许在项目生成时进行任何配置,而 Vue 支持 Yeoman-like 定制。
  • 它只提供一个构建单页面应用的单一模板,而 Vue 提供了各种用途的模板。
  • 它不能用用户自建的模板构建项目,而自建模板对企业环境下预先建立协议是特别有用的。

向下扩展

 react学习需要你知道JSX和ES2015,vue使用比较简单,只需要引用<script src="https://unpkg.com/vue/dist/vue.js"></script>就可以使用了,生产环境时替换成min版的即可

 

 

看vue.js官网时的记录:原文链接:

 

转载于:https://www.cnblogs.com/eyunhua/p/6535038.html

你可能感兴趣的文章
hibernate 一级缓存and 快照
查看>>
iPhone电池到底为何不耐用,真相让人意外
查看>>
真正实现多点触控索尼Xperia Touch试用
查看>>
如何在OpenStack中轻松部署MySQL应用
查看>>
VMware vSphere:架构解析及应用案例
查看>>
可视化探索卷积神经网络提取特征
查看>>
Docker-run
查看>>
一点资讯拆VIE回国;拼多多做跨境海淘;复宏汉霖首款生物类似药获批
查看>>
怎么设计IOS登录页面的跳转关系
查看>>
ecshop 漏洞如何修复 补丁升级与安全修复详情
查看>>
【三】Centos7.4 安装Docker
查看>>
拜腾与博世将在动力系统、驾驶员辅助等方面展开重点合作
查看>>
国资入场,P2P网贷平台星火钱包千万级A+轮融资
查看>>
windows server21012 r2 密钥
查看>>
北大发布新零售之城发展指数报告,上海超北京成榜首
查看>>
python urllib爬取网页编码问题
查看>>
JMS的常用方法
查看>>
隐私与机器学习,二者可以兼得吗?
查看>>
DNS原理概念详解
查看>>
shell数组的使用
查看>>