1. 程式人生 > 其它 >Vue例項—— 計算屬性(computed)、 watch 狀態監聽和filter 過濾器

Vue例項—— 計算屬性(computed)、 watch 狀態監聽和filter 過濾器

Vue例項—— 計算屬性(computed)、 watch 狀態監聽和filter 過濾器

Vue例項配置物件

選項 說明
data Vue例項資料物件
methods 定義Vue例項中的方法
components 定義子元件
computed 計算屬性
filters 過濾器

計算屬性(computed)

格式:computed:{ 變數(){ 計算表示式} }

<p>總價格為:{{sum}}</p>


var app=new Vue({
el:"#app",
data:{
price:10,
num:0
},
//按鈕事件自增,自減事件
menthods:{
  add:function(){
      this.num++;
  },
   end:function(){
        this.num--;
   },
},
    computed:{
      sum(){
          return this.price*this.num
      }
    }

})

watch 狀態監聽(用來監聽事件的變化)

注意:監聽名要與被監聽名相同,監聽上一個資料,和新的資料。(應用場景:資料發生改變需要儲存新資料或者需要檢視以前的資料)

<!-- -->
<body>
    <div id="app">
        <input type="text" v-model="name"><br>
        <input type="text" v-model="home">
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
                name: "上海",
                home:"北京"
            },
            watch: {
                name(newvalue, oldvaule) {
                    console.log("新城市:" + newvalue)           //新的值
                    console.log("舊的城市:" + oldvaule)           //舊的值
                },
                    home(newvalue,oldvaule){
                    console.log("新家:" + newvalue)    //新的值
                    console.log("舊家:" + oldvaule)    //舊的值
                    }
                },
     
        });

    </script>
</body>
     watch: {  
     //簡寫
     name(newvalue, oldvaule) {
    console.log("新城市:" + newvalue)           //新的值
     console.log("舊的城市:" + oldvaule)           //舊的值
                },
      //全寫
      name:{
      immediate:true,  //是否初始化時執行 
       handler(newvalue,oldvalue){
      console.log("新城市:" + newvalue)           //新的值
      console.log("舊的城市:" + oldvaule)           //舊的值
                  }
                }
     }

filter 過濾器

filter 過濾器,(對數進行格式化,比如字串首字母大寫,日期格式化等據)在頁面中直接操作資料,返回最終結果。

<body>
    <div id="app">
        {{mis | bag}}
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
              mis: "hello world",         //小寫轉大寫
            },
        filters:{
         bag(value){
         return  value?value.toUpperCase():"" 

         }   
        }
          
        });

    </script>
</body>