數據變化的監控經常使用,我們可以先來看一個簡單的數據變化監控的例子。例如天氣預報的穿衣指數,它主要是根據溫度來進行提示的,當然還有其它的,咱們就不考慮了
# 一個監控變化的案例
溫度大于26度時,我們建議穿T恤短袖,溫度小于26度大于0度時,我們建議穿夾克長裙,溫度小于0度時我們建議穿棉衣羽絨服。
先來模擬一個溫度變化的情況:我們使用按鈕來加減溫度
~~~
<body>
<div id="app">
<p>今天溫度:{{temperature}}</p>
<p>穿衣建議:{{this.suggestion}}</p>
<p>
<button @click="add">添加溫度</button>
<button @click="reduce">減少溫度</button>
</p>
</div>
</body>
<script type="text/javascript">
var suggestion = ['T恤短袖', '夾克長裙', '棉衣羽絨服'];
var app = new Vue({
el: '#app',
data: {
temperature: 14,
suggestion: '夾克',
},
methods: {
add: function () {
this.temperature += 5;
},
reduce: function () {
this.temperature -= 5;
},
},
watch: {
//newVal就是變化后的值,oldVal就是老的值
temperature: function (newVal, oldVal) {
if (newVal >= 26) {
this.suggestion = suggestion[0];
} else if (newVal < 26 && newVal >= 0) {
this.suggestion = suggestion[1];
} else {
this.suggestion = suggestion[2];
}
}
}
});
</script>
~~~
# 用實例屬性寫watch監控
有些時候我們會用實例屬性的形式來寫watch監控。也就是把我們watch卸載構造器的外部,這樣的好處就是降低我們程序的耦合度,使程序變的靈活。
~~~
app.$watch('xxx',function(){})
~~~
還是上邊的案例我們改成實例方法的模式
~~~
app.$watch('temperature',function(newVal,oldVal){
if(newVal>=26){
this.suggestion=suggestion[0];
}else if(newVal<26 && newVal >=0)
{
this.suggestion=suggestion[1];
}else{
this.suggestion=suggestion[2];
}
})
~~~
- 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