主张最少
每个框架都有特点,要求开发者按照一定要求书写,这些要求就是主张。
angular排他性很强,必须使用他的模块机制、依赖注入以及特殊形式定义组件。如果不是从头开始写的项目,需要不断集成别的,这些主张会很麻烦。
React主张主要是函数式编程的理念,看似没有angular侵入性强,其实是软性侵入。视图层虽然可以单用,但是用了以后需要引入Flux,Redux,Mobx之中的一个,需要纠结很多外部依赖的问题,看看业务开发过程中每个东西的副作用,纯不纯,不纯会导致同样不加参数调用两次结果不同。开发人员熟悉OO设计模式,思想转换到函数式编程需要时间。
Vue是渐进式的,没有强主张,可以当作组件使用,作为jQuery。也可以用来全家桶开发,当作angular用,还可以用整个视图搭配自己的下层用。可以在数据逻辑的地方用OO,也可以函数式。
过程:
json 数据
jsont={
A:[{
name: "阿坝", spellName: "aba", id: 5780, fullname: "四川/阿坝", sortLetters: "a"},{
name: "阿克苏", spellName: "akesudi", id: 6474, fullname: "新疆/阿克苏", sortLetters: "a"},{
name: "阿拉善", spellName: "alashanmeng", id: 3862, fullname: "内蒙古/阿拉善", sortLetters:"a"}],
B:[{
name: "白城", spellName: "baicheng", id: 4041, fullname: "吉林/白城", sortLetters: "b"},{
name: "百色", spellName: "baise", id: 5527, fullname: "广西/百色", sortLetters: "b"}]
<div class="area" v-for="(item,key) of jsont">//遍历对象类型的数据
<div class="title ">{
{key}}div>
<div class="item-list">
<div class="item" v-for="innerItem of item">
{
{innerItem.name}}
div>
div>
div>
jquery方式
<div class="area" >//遍历对象类型的数据
div>
$.each(jsont,function(key,value){
$('.area').append(''+key+'');
$('.area').append(''+key+'');
$.each(value,function(k,v){
$('.area .item-list').append(''+v.name+'');
});
})
<-- vue -->
<div>
<-- n从1开始 -->
<span v-for="n in 10">{
{ n }} span>
div>
//jquery
var box=$('div span').copy;
for(var i=0;i<10;i++){
box.append(box);
}
<div v-if="Math.random() > 0.5">
Now you see me
div>
<div v-else>
Now you don't
div>
.ctrl
.alt
.shift
.meta
<input @keyup.alt.67="clear">
<div @click.ctrl="doSomething">Do somethingdiv>
只能用在表单元素里
在单选、多选、选择框的情况下,可以通过绑定特殊值,显示当前选中元素
<input type="radio" v-model="picked" value="a">
<input type="checkbox" v-model="toggle">
<select v-model="selected">
<option value="abc">ABCoption>
select>
<-- 对象是无序键值对的集合 -->
:style="{ color:'red' }"
如果属性里包括’-‘例如(margin-left),则样式名必须加引号
: class="obj"
1) https://www.bilibili.com (bilibili)
2) http://m.sohu.com (手机搜狐网)
3) https://juejin.im/timeline (掘金)
4) http://element.eleme.io/#/en-US (element)
5) https://classics.autotrader.com (New&Used Classic Car for sale)
6) http://qiqu.uc.cn (奇趣百科)
7) https://m.uhouzz.com/apartments (异乡好居)
当DOM操作影响到布局的时候,浏览器的渲染引擎会进行计算,DOM操作的越多,计算量越大,页面性能降低,因此减少DOM操作是好的。
双向绑定其实就等于单向绑定+UI时间监听,只不过Vue将过程采用黑箱封装起来了。
优点:方便,数据更新可以实时反馈到UI页面,同时UI页面修改数据也会更新
缺点:更新的时间和更新的数据在哪个元素不知道
代替jQuery,加强交互。