1. 程式人生 > >Vue.js之computed和watch的使用與區別

Vue.js之computed和watch的使用與區別

VUE之computed和watch應用與區別

目錄:

  • computed
  • watch
computed

計算結果並返回,只有當被計算的值發生改變時才會觸發
(即:計算屬性的結果會被快取,除非依賴的響應式屬性變化才會重新計算)

new Vue({
    el: '#id',
    template: `<div>
        <span>Name: {{name}}<span>
    </div>`,
    data: {
        firstName: 'Leo',
        lastName: 'Alan'
}, computed: { name () { return `${this.firstName} + ${this.lastName}` } } })
watch

監聽某一個值,當被監聽的值發生變化時,執行對應的操作
(與computed的區別是,watch更加適用於監聽某一個值的變化並做對應的操作,比如請求後臺介面等,而computed適用於計算已有的值並返回結果)

new Vue({
    el: '#id',
    template: `<div>
        // ...
    </div>`,
    data: {
        firstName: 'Leo'
, lastName: 'Alan', obj1: { a: 0 } }, watch: { // 監聽firstName,當firstName發生變化時就會執行該函式 firstName () { // 執行需要的操作... // 注:初始化不會執行,只有當被監聽的值(firstName)發生變化時才會執行 }, // 監聽lastName lastName: { handler (newName, oldName) { // 執行需要的操作...
}, immediate: true // true: 初始化時就會先執行一遍該監聽對應的操作 }, obj1: { handler () { // 執行需要的操作... }, deep: true // 該屬性預設值為false. // 當被監聽的值是物件,只有deep為true時,對應屬性的值(obj1.a)發生變化時才能觸發監聽事件,但是這樣非常消耗效能 }, // 監聽物件具體的屬性, deep就不需要設定為true了 'obj1.a': { handler () { // 執行需要的操作... } } } })

注意: 不要在computed和watch中修改被依賴(或者被監聽)的值,這樣可能會導致無限迴圈

相關推薦

Vue.jscomputedwatch的使用區別

VUE之computed和watch應用與區別 目錄: computed watch computed 計算結果並返回,只有當被計算的值發生改變時才會觸發 (即:計算屬性的結果會被快取,除非依賴的響應式屬性變化才會重新計算) new Vue(

Vue.jscomputedwatch用法及區別

1. 如何使用 1.1 computed計算屬性 <template> <div> <el-input v-model="value1" placeholder="費用1"></el-input>

實例分析Vue.jscomputedmethod不同機制

java meta 取值 源碼 otc 它的 round div 兩種 在vue.js中,有methods和computed兩種方式來動態當作方法來用的 1.首先最明顯的不同 就是調用的時候,methods要加上() 2.我們可以使用 methods 來替代 compute

vue中的computedmethods的區別

computed與methodscomputed是計算屬性的意思,我們在得到最後結果的時候可以使用computed 例如:<input type="checkbox" v-model="checkAll">computed: {checkAll: {// 當

前端進階:vue中的computedwatch的異同

前言 心情很忐忑,當我寫下這個標題。想起年初時在杭州求職,電面了一家武漢的公司,面試官就拋了這樣一個問題。那時候還懵懵懂懂,就知道如何使用,並沒有太清楚兩者的區別。 開始 有時候寫這些東西,真的怕誤導了一些人,以下描述的異同,只是我個人的觀點。如果有什麼不當之處,還望各位博友指出~感謝

詳解Vue中的computedwatch

> 作者:小土豆 > 部落格園:[https://www.cnblogs.com/HouJiao/](https://www.cnblogs.com/HouJiao/) > 掘金:[https://juejin.cn/user/2436173500265335](https://juejin.cn/u

Vuecomputed、methods watch區別

<template> <div> <p>使用computed {{ message }}</p> <p>使用methods {{ message() }}<

認識Vue.js+Vue.js的優缺點+其他前端框架的區別

首先,我們先了解什麼是MVX框架模式?MVX框架模式:MVC+MVP+MVVM1.MVC:Model(模型)+View(檢視)+controller(控制器),主要是基於分層的目的,讓彼此的職責分開。View通過Controller來和Model聯絡,Controller是V

vueComputed Watch的使用區別

Computed: 可以關聯多個實時計算的物件,當這些物件中的其中一個改變時都會出發這個屬性。具有快取能力,所以只有當資料再次改變時才會重新渲染,否則就會直接拿取快取中的資料。 舉個例子: 當我們想讓div元素的背景色和文字顏色一致時,我們就可以使用comp

vuecomputed watch的異同

computed 在資料未發生變化時,優先讀取快取。computed 計算屬性只有在相關的資料發生變化時才會改變要計算的屬性,當相關資料沒有變化是,它會讀取快取。而不必想 motheds方法 和 watch 方法是的每次都去執行函式。 computed:{ fullName:{

vue中的methods、computedwatch

1、computed屬性: 經過處理返回的資料值,只要源資料沒有發生改變,computed函式裡面對相應的資料就不會反生改變,相當於快取在本地;發生改變的時候,computed對應資料的函式才會發生改變。 2、computed屬性和methods屬性: 你可能已經注意到我們可以通過呼叫method來達到

VUEcomputedwatch的使用

VUE中computed和watch的使用 VUE中computed和watch的使用 1.computed computed用來監控自己定義的變數,該變數不在data裡面宣告,直接在computed裡面定義,然後就可以在頁面上進行雙向資料繫結展示出結果或者用作其他處理; com

methodscomputedwatch的聯絡區別

一.methods和computed computed是計算屬性,methods是方法。 html: <p>Reversed message: "{{ reversedMessage() }}"</p> js: 1. var vm = new V

vue心得系列1——methods,computedwatch區別

使用vue已經有一段時間了,專案當中遇到過很多問題。 之前會通過社群,部落格和百度來觀摩學習大佬前輩們的解決思路,最後轉換到專案和工作當中來解決現有的問題。 這裡是我在解決問題當中對一些點的整理,或者說自我理解。 關於methods,computed,watch的區別,先結合官網給出解釋

Vue.js的元件框架PC移動 iView elementUI MintUI

餓了麼團隊開源一個基於vue 元件庫 elementUI   PC官網 http://element.eleme.io/ MintUI 移動端 http://mint-ui.github.io/ iV

vuecomputedwatch

單選 style 進行 hao123 check 監聽器 情況 v-model spa computed 計算屬性 能夠監聽vue數據上的變化,頁面上來就執行一次,每改變一次數據就又觸發。在操作數據的時候,會派生出另一個事情 get是獲取的時候執行的操作。set是修改時候執

Vue基礎精講 —— Vuecomputedwatch使用場景方法

watch和computed都是以Vue的依賴追蹤機制為基礎,它們都試圖處理這樣一件事情:當某一個數據(稱它為依賴資料)發生變化的時候,所有依賴這個資料的“相關”資料“自動”發生變化,也就是自動呼叫相關的函式去實現資料的變動。 methods用來定義函式,它需要手動呼叫才能

JS中isPrototypeOf hasOwnProperty 的區別

另一個 strong 是否 指定 不同 名稱 功能 成員 eof 1、isPrototypeOf isPrototypeOf是用來判斷指定對象object1是否存在於另一個對象object2的原型鏈中,是則返回true,否則返回false。 格式如下: object1.is

清空文件內容命令echo/dev/null區別

linux 字符串 null 定向 我們知道清空文件內容有很多種方法我們只談論echo "" 和 /dev/null這兩種有什麽區別一、黑洞設備/dev/null是什麽?在 Linux 中, null 設備基本上被用來丟棄某個進程不再需要的輸出流,或者作為某個輸入流的空白文件,這些通常可以利用

vue.js【vuex】

state 一個 流程控制 rem ise 導出 pre sync ati vuex 合在一起寫Vuex.Store 目錄結構:   | src     | store.js 引入: import Vue from ‘vue‘ import Vuex from ‘vuex