91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue.js中computed和methods之間的區別是什么

發布時間:2020-09-15 10:07:50 來源:億速云 閱讀:139 作者:小新 欄目:web開發

這篇文章主要介紹Vue.js中computed和methods之間的區別是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

官方文檔中已經有對其的解釋了,在這里把我的理解記錄一下。

computed 的使用場景

HTML模板中的復雜邏輯表達式,為了防止邏輯過重導致不易維護,都應當把相關邏輯放入計算屬性。

比如這種

<div id="root">
     <p>Reversed message: "{{ message.split('').reverse().join('') }}"</p>
</div>

在這個地方,模板不再是簡單的聲明式邏輯。這里是想要顯示變量 message 的翻轉字符串,而這種包含復雜邏輯處理的表達式,都應當使用計算屬性。

computed 和 methods 的區別

1. computed是屬性調用,而methods是函數調用

這意味著在HTML的插值里

computed定義的方法是以屬性訪問的形式來調用,如 {{reversedMessageComputed}}

methods定義的方法,則要加上 () 來調用,如 {{reversedNameMethod()}} ,否則視圖中會渲染出如下內容

function () { [native code] }

2. computed帶有緩存功能,而methods不是

這里我引用一下官方文檔的說明

計算屬性是基于它們的依賴進行緩存的。只在相關依賴發生改變時它們才會重新求值。

<!-- html -->
<div id="root">
    <p>Reversed message: "{{ reversedNameMethod() }}"</p>
    <p>Reversed message: "{{ reversedMessageComputed }}"</p>
</div>
// javascript
var vm = new Vue({
    el: '#root',
        data: {
        name: 'Alex',
        message: 'Hello'
    },
    methods: {
      reversedNameMethod: function () {
        return this.name.split('').reverse().join('')
      }
    },
    computed: {
        // 計算屬性的 getter
        reversedMessageComputed: function () {
        // `this` 指向 vm 實例
        return this.message.split('').reverse().join('')
        }
    }
})

上面的例子中,緩存意味著只要 message 還沒有發生改變,多次訪問 reversedMessageComputed 計算屬性會立即返回之前的計算結果,而不必再次執行函數。而 reversedNameMethod() 方法,每次調用都會重新執行函數。

但同時需要注意,這也同樣意味著下面的計算屬性將不再更新,因為 Date.now() 不是響應式依賴:

// javascript
computed: {
    now: function () {
        return Date.now()
    }
}

now 的值將在Vue實例化時生成,并且不再改變。
相比之下,每當觸發重新渲染時,調用方法將總會再次執行函數。

computed其他說明

computed 和 methods 不可以重名

Vue會把 methods 和 data 里的東西,全部代理到Vue生成的對象中,這會將computed中重名屬性覆蓋

以上是Vue.js中computed和methods之間的區別是什么的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼图壁县| 英吉沙县| 康定县| 渑池县| 光泽县| 华阴市| 宁化县| 河曲县| 安庆市| 兴业县| 永兴县| 册亨县| 玛多县| 甘德县| 岑溪市| 兴业县| 平原县| 奉新县| 红桥区| 皋兰县| 西乌| 青龙| 大理市| 龙泉市| 麻栗坡县| 辽宁省| 尼玛县| 桐庐县| 阿克苏市| 马龙县| 大埔区| 潍坊市| 镇康县| 呼和浩特市| 博爱县| 清涧县| 深泽县| 剑阁县| 西吉县| 容城县| 中阳县|