文档章节

Per.js对比其他框架有什么不同,他解决了什么问题

Skyogo
 Skyogo
发布于 2018/09/16 09:09
字数 1301
阅读 2970
收藏 8

有人一开始看到Per.js时,会觉得它就是一个普通的JavaScript响应式开发框架,和Vue比几乎完全一样,我并不需要使用它,也不想了解它。如果你也有这样的问题,那么这篇文章也许会让你重新思考这个问题。

接下来,我就来详细说明一下Per.js的优势与劣势:

Per和Vue有70%的相似度,那么我们就从他们对比。

首先,性能往往是决定一个框架好坏的最重要的一条,而Per.js的平均执行速度要比Vue快出7到8倍去。(至少在2.3版本之前是这样,之后可能会越来越慢,因为功能越加越多)这就表示当你从服务器里获取20000条数据并使用for属性输出时,使用Vue时的执行时间大约为200ms,而使用Per的执行时间仅有45ms。所以可以说Per.js在for属性上面的执行速度大约是Vue.js的5倍还要多。

仅凭一个for属性的执行速度可能还不足让你信服,那么现在就让我们看看组件的渲染速度。

使用Vue在100个元素中绘制组件大约需要67ms,而使用Per在100个元素中绘制相同组件则只需要1.5ms,这就说明Per.js在渲染组件方面,比Vue要快出大约45倍。

可能你会说,我根本就不用Vue渲染那么多组件,而且Vue虽然比Per.js慢,但是也够用了。

那么如果你这样认为的话,我们就继续来看看Vue和Per.js的数据模板渲染速度。

使用Vue在100个元素中渲染2个变量大约需要58ms,而使用Per执行同样操作则只需要16ms,这就说明Per.js在渲染组件方面,比Vue要快出大约3.5倍。

(以上代码的对比测试详细链接在这里:Per.js速度对比Vue的传送门

你可以想象,当你的服务器带宽不足,网站访问极慢时,你可能会考虑以下几种方法:

  1. 增加带宽
  2. 重构网站

第一种方法浪费钱,第二种方法浪费时间,如果都不适合你,那么你可以选择替换框架。

假设你的用户访问你的网站需要6秒的时间,那么服务器带宽决定了4秒,前端操作浪费了2秒。更何况某些花里胡哨的网站,前端代码几十万行的那种,更需要一个快速的前端框架。

而我们的作用,就是要解决这个问题。

Per.js和Vue的操作几乎相同,但是源码100%不同,而且Per.js的部分操作方式和Vue的方式几乎完全一样。更何况它(Per.js)也是渐进式框架,你只需要小修小改即可完成替换。

有些人又会说,我懒得修改了怎么办呢?

那么你需要想一想,是浪费你每月大约200块钱好呢,还是重构网站浪费你大约10天时间好呢,还是替换个框架,修改几个api来得实在。

当然,一个框架的易用性和易上手度是决定这个框架好坏的第二标准,在这一点上,Per.js比Vue也要完美。

你去码云看看我们的wiki和Vue的官方教程即可知道,使用上手Vue的难度是Per.js难度的几乎3倍还要多,十分不适合某些刚进入前端的小白来使用。

那么你就可以选择Per.js!

我们的框架比Vue简单,而且方便,如果你已经学习了Vue也不要紧,我们的框架比Vue要简单几倍,你只需要花费10分钟阅读我们的文档,即可开始体验我们的超级框架!

那么还有人会问,你们的框架有Vue的全部功能吗?

首先你需要知道,我们创建这个框架,不是为了再造一个轮子,而是发展一个新的超级JavaScript响应式框架。这个超级框架,不是为了和Vue一样,主要作用在DOM视图上,而是为了各方面的需求。其中包括:DOM、前端操作、ajax等等。

我们的框架在DOM方面和Vue一样采用MVC架构;另外我们的框架是模块化的,可扩展的。

这就使得你可以在需要使用时再加载一个Per.js的模块,有效减少了加载时的性能消耗。

好了,那么最后,看完了这篇文章,相信你自己心里已经有选择了。

那么,欢迎下载和使用Per.js!

© 著作权归作者所有

共有 人打赏支持
Skyogo

Skyogo

粉丝 33
博文 12
码字总数 9323
作品 12
程序员
私信 提问
加载中

评论(13)

y
yg627756022
vue出来之前也是这样受了很多质疑的,楼主加油支持你
y
yg627756022
vue出来之前也是这样受了很多质疑的,楼主加油支持你
xflcx1991
xflcx1991
试试。
Skyogo
Skyogo

引用来自“pantrick”的评论

看完你的文章也没发现有什么革命性的优点,
说到底就是渲染速度快,其实,这个真不是什么优点,即使你认为如此,太单薄了,没人因为网站速度慢就换框架,说因为这个换框架的太幼稚,除非原来的框架实在不堪重用,事实上,并非如此,无限夸大自己的那点优势,纯粹就是把用户当傻瓜看待,何况干这一行的傻瓜并不多,当年java出来的时候比同类语言每个速度都慢,但是有没有被放弃?
你认真看文章,我们的易上手度也高。
pantrick
pantrick
看完你的文章也没发现有什么革命性的优点,
说到底就是渲染速度快,其实,这个真不是什么优点,即使你认为如此,太单薄了,没人因为网站速度慢就换框架,说因为这个换框架的太幼稚,除非原来的框架实在不堪重用,事实上,并非如此,无限夸大自己的那点优势,纯粹就是把用户当傻瓜看待,何况干这一行的傻瓜并不多,当年java出来的时候比同类语言每个速度都慢,但是有没有被放弃?
Skyogo
Skyogo

引用来自“左华栋”的评论

其实感觉作者还是有一些误解的,学习成本:前端别的不说,vue 早就像当年JQ一样烂大街了,不存在学习成本的。性能:Mithril.js 也是小巧,用户量也不少,然而并没有什么卵用,三大框架的懒加载了解下?vue的nuxt了解下?github SPA 和 SSR 混合了解下?都可以提升性能。生态:能做APP么?能做小程序么?能做桌面应用么?能做VR...
而且我很疑惑,为什么小巧就没什么卵用呢
Skyogo
Skyogo

引用来自“左华栋”的评论

其实感觉作者还是有一些误解的,学习成本:前端别的不说,vue 早就像当年JQ一样烂大街了,不存在学习成本的。性能:Mithril.js 也是小巧,用户量也不少,然而并没有什么卵用,三大框架的懒加载了解下?vue的nuxt了解下?github SPA 和 SSR 混合了解下?都可以提升性能。生态:能做APP么?能做小程序么?能做桌面应用么?能做VR...
引入nuxt不是更加麻烦吗。而且你说烂大街了,我们是为了js小白才建立的,而且vue10000行代码,我们才1500行,最后哪怕及时渲染时间都一样,请求的数据量少些对你的服务器也有好处,生态我们这里也在慢慢建立,per.js才刚刚1个月,不可能初期就生态很好的
左华栋
左华栋
其实感觉作者还是有一些误解的,学习成本:前端别的不说,vue 早就像当年JQ一样烂大街了,不存在学习成本的。性能:Mithril.js 也是小巧,用户量也不少,然而并没有什么卵用,三大框架的懒加载了解下?vue的nuxt了解下?github SPA 和 SSR 混合了解下?都可以提升性能。生态:能做APP么?能做小程序么?能做桌面应用么?能做VR...
Skyogo
Skyogo

引用来自“西红柿幽幽子”的评论

并不是响应式
你看我们gitee上面的wiki,怎么就不是响应式了呢
西红柿幽幽子
西红柿幽幽子
并不是响应式
Per.js 2.3 发布,超快执行速度的 JavaScript 响应式框架

Per.js 2.3版本今天发布了,那么让我们来看看这次2.2版本更新了哪些内容: 除了do之外的其他方法支持无括号构造,例如Per.use(),而不是必须要Per().use() Per.page模块的create方法支持使用...

Skyogo
2018/09/18
838
9
Per.js 2.6.1 版本发布,执行速度超快的 JS 响应式框架

Per.js 2.6.1版本今天发布了,那么让我们来看看这次版本更新了哪些内容: 修复info属性_super报错问题 【点赞是开源中国的必备礼仪(红薯说的),前往码云给个star吧!https://gitee.com/sky...

Skyogo
2018/10/10
850
22
今天在码云遇到一个很有意思的人 for Per.js

今天在码云遇到一个很有意思的人,他在我的Per.js项目下面评论了一句,大意为“你试试这句代码,看看速度到底是你快还是Vue快”【当然,这个评论被我手残不小心删掉了...】。 然后我就试了,...

Skyogo
2018/09/23
0
0
Per.js 3.0-Beta.1 发布,“性能秒杀 Vue 的前端怪兽级框架”

昨天在开源中国逛动弹时发现有人问了一个问题:选谁当女朋友最好? 于是我就顺手回复了一句:选Per.js当女朋友最好 没想到最后他竟然给我个这样的回复: 好吧, 说起来还有点小激动呢! 那么...

Skyogo
2018/10/29
3.3K
46
Per.js 2.6 版本发布,执行速度超快的 JS 响应式框架

Per.js 2.5版本今天发布了,那么让我们来看看这次版本更新了哪些内容: dom方法增加info属性,用来定义值,同时方法中的this指向info属性。当然,你还可以使用_super来获取原始的this指向 去...

Skyogo
2018/10/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

四、RabbitMQ3.7在CentOS7下的安装

安装依赖 sudo yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git 创建yum源 vi /etc/yum.repos.d/rabbitmq-erlang.repo [......

XuePeng77
今天
2
0
android 延长Toast的时长

示例:myToast(5000,"hello"); public void myToast(int showTime, String msg) { Toast hello = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); new CountDownTimer(......

雨焰
昨天
4
0
浅谈mybatis的日志适配模式

Java开发中经常用到的日志框架有很多,Log4j、Log4j2、slf4j等等,Mybatis定义了一套统一的日志接口供上层使用,并为上述常用的日志框架提供了相应的适配器。有关适配器模式例子可以参考 设计...

算法之名
昨天
13
0
大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE ./sqoop import --connect...

em_aaron
昨天
3
0
Git cherry-pick 使用总结

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某...

天王盖地虎626
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部