vue-basic(二)

v-bind

传对象 
<div v-bind:class="{active:isActive}"></div>
data: {
  isActive: true
}

可以把对象放到computed里面 computed一定要返回对象
<div v-bind:class="classObject"></div>
data: {
  isActive: true,
  error: null
},
computed: {
  classObject: function () {
    return {
      active: this.isActive && !this.error,
      'text-danger': this.error && this.error.type === 'fatal'
    }
  }
}

数组语法
<div v-bind:class="[activeClass,errorClass]"></div>
data:{
  activeClass:'active',
  errorClass:'text-danger'
}

三目运算符
<div v-bind:class="[isActive ? activeClass : '' ,errorClass]"></div>
会直接添加errorClass 只有在isActive为true时,才会添加activeClass

数组对象
<div v-bind:class="[{active:isActive},errorClass]"></div>
v-else-if
<div v-if="type == 'A'">A</div>
<div v-else-if="type == 'B'">B</div>
<div v-else>非A,B</div>

用template来包含代码块 控制一块的显示 ok为false时 template也不会显示
<template v-if="ok">
  <h1>标题</h1>
  <p>段落 1</p>
  <p>段落 2</p>
</template>
注意在切换页面
<template v-if="loginType === 'username'">
        <label>用户名</label>
        <input placeholder="请输入用户名" key="username-input">
    </template>
    <template v-else>
        <label>邮箱</label>
        <input placeholder="请输入邮箱" key="email-input">
    </template>
切换不加key的部分不会重新渲染 也就是说不加key 输入框有值 在切换后,值会依然有 优点:渲染速度快。

v-show 
<h1 v-show="ok">hello</h1> 
他的元素会始终渲染并保留你在DOM中。v-show只会切换元素的dispolay的css属性

v-if 和 v-show
都能实现控制元素隐藏与否
v-if 是'真实'的条件渲染,每一次切换 它都会销毁和重新创建条件块内的事件监听器和子组件
v-if只有在为true时才会渲染条件块
v-show它都会渲染 只是样式隐藏

v-for
<ul>
  <li v-for="item of items">{{item.message}}</li>
</ul>

<ul>
  <li v-for="(item,index) in items">{{item.message}}</li>
</ul>

v-for也可以在整数值范围内迭代,这种情况,会把模板重复多次.
<div>
   <span v-for="n in 10">{{n}}</span>
</div> 

在<template>上使用v-for
<ul>
  <template v-for="item in items">
    <li>{{ item.msg }}</li>
    <li class="divider"></li>
  </template>
</ul>

带有v-if的v-for
<li v-for="todo in todos" v-if="!todo.isComplete">{{todo}}</li>
它们都在同一节点上,v-for的优先级高于v-if.这意味着v-if将分布在循环中的每次迭代上运行。当你只想渲染某些节点时.这个非常有用。

 注意:在迭代的时候最好提供一个key.因为数组顺序在操作时可能会变.变了之后视图也会相应的改变.
 提供key使排序速度快.
 <div v-for="item in items" :key="item.id"></div>
 
 vue将观察数组的变化包裹起来,方便在调用这些方法时.能够触发视图更新
  push() pop() shift() unshift() splice() sort() reverse()
 
 注意事项 由于js的限制 Vue无法检测到已下数组的变化
    1:直接设置某一项 vm.items[indexOfItem] = newValue;
    2:修改数组长度 vm.items.length = newLength
 必须通过响应式系统触发状态更新.
Vue.set(example1.items, indexOfItem, newValue)
example1.items.splice(indexOfItem, 1, newValue)
example1.items.splice(newLength)
关于对对象的监控 实时更新
var vm = new Vue({
  data:{ a : 1}
})
//vm.a是响应的
vm.b =2 //vm.b 不是响应的
vue 不允许在已经创建的实例上,动态的添加新的根级响应式属性。然而,可以通过使用Vue.set(Obj,key,value)方法.将响应式属性添加到嵌套的对象上。
如 添加新的age属性
var vm = new Vue({
  data: {
    userProfile: {
      name: 'Anika'
    }
  }
})
Vue.set(vm.userProfile,'age',27);
也可以
vm.$set(this.userProfile,'age',27)

向已经存在的对象上添加一些新的属性。例如使用Object.assign() 或 _.extend()方法。
这种情况,应该创建一个新的对象.这个对象同时具有对象的所有属性.可以通过如下方式.添加新的响应式属性
this.userProfile = Object.assign({}, this.userProfile, {
  age: 27,
  favoriteColor: 'Vue Green'
})

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容