[TOC]
# 實時預覽
~~~
cnpm install live-server -g
~~~
然后live-server就可以了
# v-if
判斷是否加載,如果是false就不加載,f12不能看到,但是不支持連環嵌套if else
~~~
<body>
<div id="app">
<div v-if="isLogin">你好,登錄成功</div>
<div v-else>請登錄</div>
</div>
</body>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
isLogin: false
}
})
</script>
~~~
# v-show
判斷是否顯示,如果false,他的css是display:none的,f12能看到
~~~
<div v-show="isLogin">你好,登錄成功</div>
~~~
# v-for
模板中循環,想讓那個標簽循環就放在那個標簽上,不要放在父級上
~~~
<div id="app">
<ul>
<li v-for="item in items">
{{item}}
</li>
</ul>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
items: [53, 23, 67, 24, 12]
}
})
</script>
~~~
## 排序
我們已經順利的輸出了我們定義的數組,但是我需要在輸出之前給數組排個序,那我們就用到了Vue的computed:屬性。
~~~
computed:{
sortItems:function(){
return this.items.sort();
}
}
~~~
我們在computed里新聲明了一個對象sortItems,如果不重新聲明會污染原來的數據源,這是Vue不允許的,所以你要重新聲明一個對象。
如果不重新聲明報錯:

~~~
<div id="app">
<ul>
<li v-for="item in sortItems">
{{item}}
</li>
</ul>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
items: [53, 23, 67, 24, 12]
},
computed: {
sortItems: function () {
return this.items.sort();
}
}
})
</script>
~~~
**注意**
他的排序并不是按照數字來的,而是按照第一個數字來的
我們可以自己編寫一個方法sortNumber,然后傳給我們的sort函數解決這個Bug。
~~~
function sortNumber(a,b){
return a-b
}
~~~
用法
~~~
<div id="app">
<ul>
<li v-for="item in sortItems">
{{item}}
</li>
</ul>
</div>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
items: [53, 23, 7, 24, 12]
},
computed: {
sortItems: function () {
return this.items.sort(sortNumber);
}
}
});
function sortNumber(a, b) {
return a - b;
}
</script>
~~~
## json
輸出json,并給他加上序號
~~~
<div id="app">
<ul>
<li v-for="(student,index) in students">
{{index}}-{{student.name}} --- {{student.age}}
</li>
</ul>
</div>
</body>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
students: [{
name: 'a',
age: 1
},
{
name: 'b',
age: 2
},
{
name: 'c',
age: 3
},
{
name: 'd',
age: 4
},
]
}
})
~~~
在控制臺里,輸入 app.students.push({ name: 'e',age: f}),你會發現列表最后添加了一個新的
排序,我們先加一個原生的對象形式的數組排序方法:
~~~
//數組對象方法排序:
function sortByKey(array,key){
return array.sort(function(a,b){
var x=a[key];
var y=b[key];
return ((x<y)?-1:((x>y)?1:0));
});
~~~
有了數組的排序方法,在computed中進行調用排序
~~~
sortStudent:function(){
return sortByKey(this.students,'age');
}
~~~
注意:vue低版本中 data里面的items和computed里面可以一樣,但是高版本,是不允許相同名稱。有很多小伙伴踩到了這個坑,這里提醒學習的小伙伴
~~~
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
students: [{
name: 'a',
age: 1
},
{
name: 'b',
age: 21
},
{
name: 'c',
age: 3
},
{
name: 'd',
age: 4
},
]
},
computed: {
sortStudent: function () {
return sortByKey(this.students, 'age');
}
}
});
//數組對象方法排序:
function sortByKey(array, key) {
return array.sort(function (a, b) {
var x = a[key];
var y = b[key];
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
}
</script>
~~~
- HTML
- 標簽
- 超鏈接
- 列表
- 表格和表單
- h5新增標簽
- 快捷方式
- 標簽包含
- CSS
- 選擇器
- 行內,塊元素,鏈接
- css三大特性
- 盒子模型
- 定位
- css可見性
- emment書寫
- 文本元素
- 外觀屬性
- 背景
- 浮動
- ps
- 用戶界面樣式
- 顯示和隱藏
- 過渡
- 2D,3D變形
- 動畫animation
- 伸縮布局(CSS3)
- BFC
- 優雅降級和漸進增強
- 3D旋轉
- 雙飛翼和圣杯
- JS基礎
- 輸出消息的幾種方式
- 數據類型
- Date對象
- Math對象
- Array對象
- 字符串常用方法
- 數據類型轉換
- 等號運算
- 代碼調試
- 數組
- 函數
- WebAPI
- webapi簡介
- 獲取頁面元素
- 事件
- 屬性操作
- 創建元素
- 節點操作
- 事件詳解
- BOM
- 位置相關屬性
- 拖拽彈窗
- 彈出層加遮罩
- ES6
- let和const
- 解構表達式變化
- 函數優化
- map和reduce
- nrm
- npm
- npm基礎
- package.json
- 淘寶鏡像
- webpack
- 介紹
- 多入口文件(Multiple entry files)
- Webpack CSS loader加載器
- webpack Image loader 加載圖片
- uglify-js壓縮打包JS
- webpack構建本地服務器
- vue內部指令
- v-if,v-show,v-for
- v-text,v-html
- v-on
- v-model
- v-bind
- v-pre,v-cloak,v-once
- vue全局api
- Vue.directive 自定義指令
- vue.extend構造器的延伸
- vue.set全局操作
- Vue的生命周期(鉤子函數)
- Template 制作模版
- Component 初識組件
- Component 組件props 屬性設置
- Component 父子組件關系
- Component 標簽
- vue選項
- propsData Option全局擴展數據傳遞
- computed Option 計算選項
- Methods Option 方法選項
- watch選項監控數據
- Mixins 混入選項操作
- Extends Option 擴展選項
- delimiters 選項
- vue實例和內置組件
- 實例屬性
- 實例方法
- 實例事件
- 內置組件 -slot
- vue-cli
- vue-cli介紹
- 項目目錄結構
- vue-cli模板
- vue-router
- 簡介
- 配置子路由
- 參數傳遞
- 單頁面多路由區域操作
- url傳遞參數
- vscode