日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

關于Vue中的計算屬性和監聽屬性詳解

瀏覽:250日期:2022-06-09 14:52:53
目錄
  • 一、computed計算屬性
    • (1)計算屬性的緩存
    • (2)計算屬性的setter
  • 二、watch監聽屬性

    一、computed計算屬性

    Vue.js模板內的表達式非常便利,但是設計它們的初衷是用于簡單運算的,在模板內放入過長的或復雜的邏輯時,會讓模板過重且難以維護。Vue.js框架提倡使用計算屬性,在一個計算屬性可以完成各種復雜的邏輯,包括邏輯運算、函數調用等,只要最終返回一個結果就可以。在Vue.js框架中,所有計算屬性都以函數的形式寫在Vue實例的computed選項內,最終返回計算后的結果。

    計算屬性使用示例:

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title>    <script src="../../vue-2.7.14.js"></script></head><body>    <div id="root"><p>原字符串:{{msg}}</p><p>反轉字符串:{{reverseMsg}}</p>    </div>    <script>var vm = new Vue({    el: "#root",    data: {msg: "Hello,computed!",    },    computed: {//計算屬性的getter函數reverseMsg: function () {    return this.msg.split("").reverse().join("");}    }})    </script></body></html>

    執行結果:

    開發人員可以在模板中像綁定普通屬性一樣綁定計算屬性,計算屬性自動監聽依賴值的變化,當其依賴屬性的值發生變化時,計算屬性的值會自動更新,與之相關的DOM部分也會同步更新。

    (1)計算屬性的緩存

    從Vue.js 0.12.11版本開始,默認提供了緩存開關,可以在計算屬性對象中指定cache字段來控制釋放開啟緩存,代碼如下:

        computed: {//關閉緩存,默認為truecache:true,//計算屬性的getter函數reverseMsg: function () {    return this.msg.split("").reverse().join("");}    }

    上述代碼中,設置cache為false關閉緩存之后,每次訪問計算屬性reverseMsg時都會重新執行getter方法

    (2)計算屬性的setter

    每個計算屬性都包含一個getter和setter,上面的例子都是計算屬性默認用法,只是利用了getter來讀取,在開發人員需要時,也可以提供一個setter函數,手動修改計算屬性就像修改一個普通屬性那樣,就會觸發setter函數,執行一些自定義的操作。

    計算屬性setter示例

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title>    <script src="../../vue-2.7.14.js"></script></head><body>    <div id="root">姓名:{{fullName}}    </div>    <script>const vm = new Vue({    el: "#root",    data: {firstName: "Emily",lastName: "Ford"    },    computed: {fullName: {    get: function () {return this.firstName + " " + this.lastName;    },    set: function () {var name = newValue.split("");this.firstName = names[0];this.lastName = names[1];    }}    }})    </script></body></html>

    執行結果:

    絕大多數情況下,只會使用默認的getter函數來讀取一個計算屬性,在業務中很少使用到setter,所以在聲明一個計算屬性的時候,可以直接使用默認的寫法,不必將getter和setter都聲明。

    二、watch監聽屬性

    Vue.js中的事件處理方法可以根據用戶的需要自定義,能通過單擊事件、焦點事件、鼠標事件等觸發條件來觸發,但是不能自動監聽當前Vue實例對象的狀態變化。為了解決上述問題,Vue.js提供了watch狀態監聽功能,只要監聽到當前Vue實例中的數據變化,就會調用當前數據所綁定的事件處理方法。

    wathch監聽屬性的示例:

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title>    <script src="../../vue-2.7.14.js"></script></head><body>    <div id="root">千米:<input type="text" v-model="kilometers">米:<input type="text" v-model="meters"><p id="info"></p>    </div>    <script>const vm = new Vue({    el: "#root",    data: {kilometers: 0,meters: 0,    },    watch: {//監聽kilometers數據kilometers: function (val) {    this.kilometers = val;    this.meters = this.kilometers * 1000;},//監聽meters數據meters: function (val) {    this.meters = val;    this.kilometers = val / 1000;}    }});//$watch是Vue.js的API提供的一個方法,用來監聽變量的數據變化vm.$watch("kilometers", function (newVal, oldVal) {    document.getElementById("info").innerHTML = "修改前:" + oldVal + ", 修改后:" + newVal;})    </script></body></html>

    執行結果:

    上述代碼中,通過data數據選項定義了kilometers和meters數據,并使用v-model進行雙向數據綁定,通過watch選項定義了監聽器,監聽當前Vue實例中kilometerhe和meters數據的變化

    雖然大多數情況計算屬性都可以滿足需要,但有時還是需要使用監聽屬性。當需要在數據發生變化時執行異步操作或開銷較大的操作時,就需要使用監聽屬性

    computed與watch有什么區別?

    (1)computed:監測的是依賴值,在依賴值不變的情況下其會讀取緩存進行復用,在變化的情況下才會重新計算;computed是同步的;computed中的函數都是帶返回值的。

    (2)watch:監測的是屬性值,只要屬性值發生變化,其都會觸發執行回調函數來執行一系列操作;watch可以實現異步;watch里面的函數可以不寫返回值

    簡單來說,computed能做的,watch都能做,反之則不行。

    到此這篇關于關于Vue中的計算屬性和監聽屬性詳解的文章就介紹到這了,更多相關Vue的計算屬性和監聽屬性內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: JavaScript
    相關文章:
    日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
    免费人成网站在线观看欧美高清| 免费日本视频一区| 国产精品亚洲人成在99www | 最新亚洲一区| 模特精品在线| 国产欧美88| 欧美激情另类| 中文在线不卡| 日本不卡中文字幕| 精品一区二区男人吃奶| 久久久久久久久99精品大| 日韩一级欧洲| 国产一区 二区| 成人亚洲欧美| 日韩中文字幕91| 里番精品3d一二三区| 在线精品亚洲欧美日韩国产| 欧美日韩国产免费观看| 日韩av成人高清| 久久电影tv| 蜜乳av另类精品一区二区| 国产亚洲久久| 免费毛片在线不卡| 国产欧美91| 亚洲网站视频| 日本久久二区| 亚洲成av在线| 日韩精品福利一区二区三区| 欧美天堂视频| 日韩精品免费一区二区夜夜嗨| bbw在线视频| 亚洲一级淫片| 麻豆成全视频免费观看在线看| 国产精品日本| 色婷婷色综合| 日韩激情一区二区| 91精品亚洲| 国产麻豆一区二区三区 | 精品国产91| 亚洲在线电影| а√天堂8资源中文在线| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品蜜芽在线观看| 午夜亚洲福利| 午夜av不卡| 欧美一级一区| 日韩视频一区| 成人片免费看| 国产精品巨作av| 日韩精品一二三| 四虎影视精品| 久久精品伊人| 日韩成人午夜精品| 欧美福利专区| 国产h片在线观看| 国产精品一区二区免费福利视频 | 亚洲精品无播放器在线播放| 中文在线免费视频| 国产欧美高清视频在线| 久久夜色精品| 欧美大黑bbbbbbbbb在线| 四虎成人av| 国产福利一区二区精品秒拍 | 欧美日韩国产综合网| 国产伊人久久| 国产精品a级| 只有精品亚洲| 午夜日本精品| 在线一区视频观看| 国产专区精品| 国产精久久一区二区| 欧美一级二级三级视频| 日韩精品一二三| 久久成人国产| 亚洲在线免费| 狠狠干成人综合网| 久久三级福利| 99久久视频| 在线一区视频观看| 国产精品蜜芽在线观看| 乱一区二区av| 久久激情五月激情| 日韩精品免费视频人成| 日本一不卡视频| 日韩专区视频网站| 日韩福利视频一区| 欧美自拍一区| 欧美天堂在线| 国产精品久久久久毛片大屁完整版| 91麻豆精品激情在线观看最新| 亚洲三级国产| 色狠狠一区二区三区| 日韩精品福利一区二区三区| 亚洲精品乱码久久久久久蜜桃麻豆| 免费国产亚洲视频| 亚洲欧洲日韩精品在线| 丝袜美腿亚洲色图| 亚洲精品无播放器在线播放| 亚洲免费一区三区| 91亚洲精品视频在线观看| 国产日韩免费| 精品国产中文字幕第一页| 91嫩草亚洲精品| 秋霞影视一区二区三区| 91久久久精品国产| 亚洲毛片网站| 国产精品一级| 美女av在线免费看| 在线观看免费一区二区| 午夜在线一区| 久久狠狠亚洲综合| 精品国产午夜肉伦伦影院| 色婷婷综合网| 久久精品国产99久久| 亚洲精品电影| 亚洲精品看片| 国产黄色一区| 国模大尺度视频一区二区| se01亚洲视频 | 国产精品毛片一区二区在线看| 神马午夜在线视频| 亚洲综合另类| 国产精品美女久久久久久不卡| 成人在线黄色| 久久亚洲不卡| 国产精品99久久久久久董美香| 日韩欧美午夜| 综合一区二区三区| 精品伊人久久| 欧美日韩激情在线一区二区三区| 久久国产66| 久久亚洲人体| 一区视频在线| 国产欧美三级| 日本精品不卡| 亚洲精品高潮| a国产在线视频| 在线一区二区三区视频| 欧美精品二区| av不卡在线看| 免费在线欧美黄色| 亚洲性图久久| 97久久亚洲| 色天使综合视频| 亚洲精品精选| 秋霞影视一区二区三区| 亚洲三级在线| 成人片免费看| 91嫩草精品| 久久在线视频免费观看| 日韩高清在线不卡| 欧美aa国产视频| 久久精品免费看| 亚洲va久久久噜噜噜久久| 国产福利电影在线播放| 久久av一区| 欧美二三四区| 国产欧美亚洲精品a| 国产精品日本| 性欧美videohd高精| 日本精品国产| 日韩亚洲国产欧美| 激情视频网站在线播放色| 亚洲日韩中文字幕一区| 91中文字幕精品永久在线| 一区二区三区四区日韩| 欧美日韩尤物久久| 国产精品传媒麻豆hd| 蜜桃久久精品一区二区| 亚洲成a人片| 久久亚洲黄色| 日韩av电影一区| 午夜在线精品偷拍| 久久精品av| 国产 日韩 欧美一区| 卡一卡二国产精品| 国产日韩亚洲欧美精品| 伊人久久一区| 久久国产成人| 不卡av一区二区| 亚洲深夜视频| 国产一区二区三区精品在线观看 | 亚洲日本三级| 亚洲一区二区动漫| 欧美色图一区| 日本精品影院| 日韩毛片视频| 国产成人精品免费视| 国产精品宾馆| 国产精品一区二区三区av| 日本午夜精品久久久| 亚欧成人精品| 亚洲最新av| 亚洲在线网站| 亚洲精品123区| 视频一区中文| 欧美/亚洲一区| 国产亚洲一区在线| 精品91久久久久| 一区三区视频|