1. 程式人生 > 其它 >10. 9. Vue 計算屬性的setter和getter

10. 9. Vue 計算屬性的setter和getter

之前寫的計算屬性是這樣的:

<div id="app">
    <p>計算屬性返回的值:{{text}}</p>
</div>

<script>
    const app = new Vue({
        el:"#app",
        computed:{
            text:function (){
                return "Hello BiHu!"
            }
        }
    })
</script>

因為之前也說過 計算屬性裡面的命名不要加set 或 set 動詞:

其實我們以前寫的都是簡寫,完全模式如下:

computed 它的值是一個物件,所以呢 其實每一個 計算屬性的值都有set 和 get 方法【這就是為什麼不用加括號的原因,因為呼叫的是一個物件】,只是呢,預設Vue都是呼叫他的get方法 ,

所以呢一般我們寫的那些匿名函式也將會歸類於get 方法 ,一般set方法都不寫,下面程式碼是完全模式的計算屬性寫法:

<script>
    const app = new Vue({
        el: "#app",
        data: {
            hello:"歡迎",
            name:
"BiHu", }, computed: { //computed的值: 【是一個物件】,每一個都有set 和 get 方法: text: { //set方法 set(name) { this.name = name; }, //get方法 get() { return this.hello + " - " + this
.name; }, } } }) </script>

執行結果:

計算屬性返回的值:歡迎 - BiHu

所以呢 Vue每次預設都是呼叫的是 get 方法 ,每次都是哦,那麼怎麼觸發set方法呢? 用響應式的那種修改text即可,比如:

 app.text = "a";

所以呢 a 會當做set方法的形式引數傳入,然後修改data中 name 的值為 a,就會打列印如下:

計算屬性返回的值:歡迎 - a

快取也是如此 只有修改了 程式碼才會更新,上篇講過,

希望大家懂得 呼叫計算屬性 其實是呼叫一個物件,物件裡面兩個方法 一個是 set 一個是get