前端框架对比之vue与regular(一)
每次一写到Regular总是忍不住先介绍一下,Regualr是网易杭州研究所的一位叫郑海波的大神写的一款前端框架,目前
这款框架推广的不深,加上其和angular过于相似的框架名,导致接受力并不大,其实Regular这款框架在我
看来已经很完善了。在网易呆了一段时间,写的几个项目都是用的Regualr,在之前我主要是用vue比较多,
所以开发过程中总忍不住将这两个框架进行对比。本文主要对实际开发代码进行对比,我个人是认为各有千秋,具体的请大家自行判断。
一.插值
1)文本插值:
regular和vue的插值方法并没有什么区别
vue: 不过vue默认以{{Expression}}的形式展现
regular:而regular则以{Expression}的形式展现,目前可以用下面的方法更改开闭符号
- Regular.config({
- 'BEGIN': '{{',
- 'END': '}}'
- })
2)属性插值:
vue:应用v-bind指令,如下把id这个属性用v-bind:的形式绑定到div上,属性值动态从data中获取
- <div v-bind:id="dynamicId"></div>
regular:与文本插值一样的写法,{}里代表从data中动态获取的数据
- <div id="{dynamicId}"></div>
3)插入表达式
vue:
- <div v-bind:id=" 'list-' +id"></div>
regular:
- <div id="list-{id}"></div>
效果都是给div一个以list-开始的id
vue:
- <div>{{ message.split('').reverse().join('') }}</div>
regular:
- <div>{ message.split('').reverse().join('') }</div>
二:指令
regular:以r-为前缀的特殊属性,regular中最常使用的是r-hide以及r-show
vue:以v-为前缀的特殊属性,vue对指令的使用要频繁的多,基本上处处指令,如v-if/v-bind/v-on,v-if用来判断是否渲染,v-bind用来响应的更新html属性,v-on则用来监听事件
下面会对一些指令的用法进行详细的解释
三:关于条件渲染
regular:用{#if 判断语句}{#elseif 判断语句} {#else } {/if}的形式进行条件渲染
- {#if load == 1}
- <div>上拉加载更多</div>
- {#elseif load == 2}
- <div class="loading">正在加载</div>
- {#elseif load == 3}
- <div>以上为所有内容</div>
- {/if}
其中load是在data中定义的
vue:用<div v-if="判断语句"></div><div v-elseif="判断语句"></div><div v-else="判断语句"></div>的形式进行条件渲染
- <div v-if="load ==='1' ">
- 上拉加载更多
- </div>
- <div v-else-if="load ==='2">
- 正在加载
- </div>
- <div v-else>
- 以上为所有内容
- </div>
其中load为data中定义的。
四:关于列表渲染
regular:regular中用{#list 列表 as }{/list}的形式进行渲染
- {#list attendanceList as att}
- <div class="wrap">
- <div class="item">
- <p class="time">{att.dataTime}</p>
- <p class="address">
- <span class="u-icon u-icon-loc"></span>
- {att.location}
- </p>
- </div>
- </div>
- {/list}
vue:vue中用<div v-for="变量 in 列表"></div>的形式渲染
- <ol>
- <li v-for="todo in todos">
- {{todo.text}}
- </li>
- </ol>
五:v-if/v-show和{#if}/r-show的区别
v-if和{#if}
是“真正的”条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
同时他们 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
相比之下, v-show
和 r-show就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。
一般来说, v-if/{#if}
有更高的切换开销,而 v-show/r-show
有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show/r-show
较好;如果在运行时条件不太可能改变,则使用 v-if
/{/if}较好。
六:对比两者js文件区别
vue:
- var app4 = new Vue({
- el:'#app4',
data:{
message:'Hello',
number:[1,2,3,4,5]
},
computed:{
reversedMessage:function(){
return this.message.split('').reserve()
}
},
methods:{
even:function(number){
return number.filter(function(number){
return number%2 === 0
})
}
}
- });
- app4.todos.push({text:"444"})
在此例中可以看出进行操作的是#app4模版,data里为#app模块需要用到的数据,method为模块用到的方法,computed为计算属性,调用时可直接用{{reversedMessage}}调用。
regular:
- data: {
- currentDate: ''
- },
- init: function() {
- this.data.currentDate = 1;
- this.setdata();
- },
- setdata: function(){
- this.data.currentDate = 2;
- alert( this.data.currentDate);
- }
简单的regular应用主要由上面几个部分解决,data中写全局的数据,init是初始化执行的函数,可以把页面初始化就要更改的数据,方法在此函数中更改和引用。setdata:function为自定义函数。
本文就说这些了,下一篇我会从组件,ajax交互,及性能优化方面继续和大家探讨这两款看似相似又有很大不同的前端框架。本文纯属个人经验,如有不对的地方,欢迎指正。
---恢复内容结束---
每次一写到Regular总是忍不住先介绍一下,Regualr是网易杭州研究所的一位叫郑海波的大神写的一款前端框架,目前
这款框架推广的不深,加上其和angular过于相似的框架名,导致接受力并不大,其实Regular这款框架在我
看来已经很完善了。在网易呆了一段时间,写的几个项目都是用的Regualr,在之前我主要是用vue比较多,
所以开发过程中总忍不住将这两个框架进行对比。本文主要对实际开发代码进行对比,我个人是认为各有千秋,具体的请大家自行判断。
一.插值
1)文本插值:
regular和vue的插值方法并没有什么区别
vue: 不过vue默认以{{Expression}}的形式展现
regular:而regular则以{Expression}的形式展现,目前可以用下面的方法更改开闭符号
- Regular.config({
- 'BEGIN': '{{',
- 'END': '}}'
- })
2)属性插值:
vue:应用v-bind指令,如下把id这个属性用v-bind:的形式绑定到div上,属性值动态从data中获取
- <div v-bind:id="dynamicId"></div>
regular:与文本插值一样的写法,{}里代表从data中动态获取的数据
- <div id="{dynamicId}"></div>
3)插入表达式
vue:
- <div v-bind:id=" 'list-' +id"></div>
regular:
- <div id="list-{id}"></div>
效果都是给div一个以list-开始的id
vue:
- <div>{{ message.split('').reverse().join('') }}</div>
regular:
- <div>{ message.split('').reverse().join('') }</div>
二:指令
regular:以r-为前缀的特殊属性,regular中最常使用的是r-hide以及r-show
vue:以v-为前缀的特殊属性,vue对指令的使用要频繁的多,基本上处处指令,如v-if/v-bind/v-on,v-if用来判断是否渲染,v-bind用来响应的更新html属性,v-on则用来监听事件
下面会对一些指令的用法进行详细的解释
三:关于条件渲染
regular:用{#if 判断语句}{#elseif 判断语句} {#else } {/if}的形式进行条件渲染
- {#if load == 1}
- <div>上拉加载更多</div>
- {#elseif load == 2}
- <div class="loading">正在加载</div>
- {#elseif load == 3}
- <div>以上为所有内容</div>
- {/if}
其中load是在data中定义的
vue:用<div v-if="判断语句"></div><div v-elseif="判断语句"></div><div v-else="判断语句"></div>的形式进行条件渲染
- <div v-if="load ==='1' ">
- 上拉加载更多
- </div>
- <div v-else-if="load ==='2">
- 正在加载
- </div>
- <div v-else>
- 以上为所有内容
- </div>
其中load为data中定义的。
四:关于列表渲染
regular:regular中用{#list 列表 as }{/list}的形式进行渲染
- {#list attendanceList as att}
- <div class="wrap">
- <div class="item">
- <p class="time">{att.dataTime}</p>
- <p class="address">
- <span class="u-icon u-icon-loc"></span>
- {att.location}
- </p>
- </div>
- </div>
- {/list}
vue:vue中用<div v-for="变量 in 列表"></div>的形式渲染
- <ol>
- <li v-for="todo in todos">
- {{todo.text}}
- </li>
- </ol>
五:v-if/v-show和{#if}/r-show的区别
v-if和{#if}
是“真正的”条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
同时他们 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
相比之下, v-show
和 r-show就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。
一般来说, v-if/{#if}
有更高的切换开销,而 v-show/r-show
有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show/r-show
较好;如果在运行时条件不太可能改变,则使用 v-if
/{/if}较好。
六:对比两者js文件区别
vue:
- var app4 = new Vue({
- el:'#app4',
data:{
message:'Hello',
number:[1,2,3,4,5]
},
computed:{
reversedMessage:function(){
return this.message.split('').reserve()
}
},
methods:{
even:function(number){
return number.filter(function(number){
return number%2 === 0
})
}
}
- });
- app4.todos.push({text:"444"})
在此例中可以看出进行操作的是#app4模版,data里为#app模块需要用到的数据,method为模块用到的方法,computed为计算属性,调用时可直接用{{reversedMessage}}调用。
regular:
- data: {
- currentDate: ''
- },
- init: function() {
- this.data.currentDate = 1;
- this.setdata();
- },
- setdata: function(){
- this.data.currentDate = 2;
- alert( this.data.currentDate);
- }
简单的regular应用主要由上面几个部分解决,data中写全局的数据,init是初始化执行的函数,可以把页面初始化就要更改的数据,方法在此函数中更改和引用。setdata:function为自定义函数。
本文就说这些了,下一篇我会从组件,ajax交互,及性能优化方面继续和大家探讨这两款看似相似又有很大不同的前端框架。本文纯属个人经验,如有不对的地方,欢迎指正。
前端框架对比之vue与regular(一)的更多相关文章
- 主流前端框架对比:Vue.js , React, Angular.js
个人认为Vue.js的文档最恳切.我认为结合文档和遇到问题Google答案的匹配度来讲:Vue.js > ReactJS > AngularJS > Angular 2 如何使用Vu ...
- VUE 与其他常见前端框架对比
对比其他框架(转官方文档) 这个页面无疑是最难编写的,但我们认为它也是非常重要的.或许你曾遇到了一些问题并且已经用其他的框架解决了.你来这里的目的是看看 Vue 是否有更好的解决方案.这也是我们在此想 ...
- 三种框架对比react vue 和Angular对比
https://blog.csdn.net/runOnWay/article/details/80103880 angular 优点 背靠谷歌 使用typescript 便于后端人员开发上手 完整 不 ...
- 前端框架开始学习Vue(三)
初步安装.与搭建 https://www.cnblogs.com/yanxulan/p/8978732.html ----如何搭建一个vue项目 安装 nodejs,,, npm i == np ...
- 前端框架VUE----学习vue前的准备工作
起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐上来就直接 ...
- 前端框架开始学习Vue(二)
1 根据关键字实现数组的过滤 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- 前端框架开始学习Vue(一)
MVVM开发思想图(图片可能会被缩小,请右键另存查看,图片来源于网络) 定义基本Vue代码结构 1 v-text,v-cloak,v-html命令 默认 v-text没有闪烁问题,但是会覆盖元 ...
- 可能是目前最完整的前端框架 Vue.js 全面介绍
Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架. 摘要 2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,“vue.js兼具angul ...
- 前端开发 vue,angular,react框架对比2
在过去一年里,前端开发发展迅速,前端工程师的薪资亦是水涨船高.2019 更是热度不减,而作为近年来尤为热门的前端框架,Vue.js 自是积累了大量关注.那么,Vue.js 是适合你的框架吗? ...
随机推荐
- ”在活动中穿梭”已经重做为“Intent的使用”
更新地址:http://www.cnblogs.com/tangwanzun/p/5702276.html
- Internet Information Services安装与启动
Internet Information Services安装 1.打开控制面板——程序——启动或关闭windows功能 2.找到Internet Information Services ——将其全 ...
- 微信JS图片上传与下载功能--微信JS系列文章(三)
概述 在前面的文章微信JS初始化-- 微信JS系列文章(一)中已经介绍了微信JS初始化的相关工作,接下来本文继续就微信JS的图片上传功能进行描述,供大家参考. 图片上传 $(function(){ v ...
- RPC漏洞
DCOM漏洞:利用这个漏洞攻击者只需发送特殊形式的清求到远程计算机上的135端口,轻则会造成拒绝服务攻击,严重的甚至可以让远程攻击者以本地管理员权限执行任何操作. 攻击过程:扫描也可用xscan+DC ...
- zookeeper + dubbo + spring boot
最近开始接触了分布式的一些东西,这里给自己作一个学习笔记. 这里只是做一个运行demo,具体的理论知识就不在这里阐述了. 1.zookeeper的安装与启动 下载地址:http://www.apach ...
- oracle物理视图(转)
近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于这方面的资料,便于提高,整理内容如下: 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普 ...
- JAVA优化建议
前言 代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用, ...
- WPF集合控件实现分隔符(ItemsControl Splitter)
在WPF的集合控件中常常需要在每一个集合项之间插入一个分隔符样式,但是WPF的ItemsControl没有相关功能的直接实现,所以只能考虑曲线救国,经过研究,大概想到了以下两种实现方式. 先写出Ite ...
- npm安装
淘宝镜像http://npm.taobao.org/ $ npm install -g cnpm --registry=https://registry.npm.taobao.org mac下 sud ...
- JS关于全局变量跟局部变量的总结
一.Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分).切记,是function块,而for.while.if块并不是作用域的划分标准,可 ...