中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Vue中計算屬性computed的示例解讀

發布時間:2020-10-20 18:06:10 來源:腳本之家 閱讀:252 作者:方式代碼 欄目:web開發

計算屬性

表達式是非常便利的,但是它們實際上只用于簡單的運算。在模板中放入太多的邏輯會讓模板過重且難以維護,所以引入了計算屬性computed,將復雜的邏輯放入計算中進行處理,同時computed有緩存功能,防止復雜計算邏輯多次調用引起的性能問題。

computed原理

computed的屬性reversedMessage在data中會有一個對我們不可見的cacheReversedMessage屬性對應

cacheReversedMessage的值是根據其綁定的data中的message來決定的 獲取reversedMessage會返回

cacheReversedMessage的值 message更新之后會立馬調用reversedMessage的get方法去給cacheReversedMessage賦值(無論reversedMessage在dom中是否使用) cacheReversedMessage的值發生變化時,相應的dom也會發生變化

注意:computed中的屬性和data中的屬性名字不能相同,一個屬性要么在data里;要么在computed里,computed里的屬性要跟data中的配合使用,當data屬性發生變化時才會調用get方法更新reversedMessage的值,否則get方法即使返回一個隨機數,reversedMessage的值也不會變。

示例代碼

computed相當于屬性的一個實時計算,如果實時計算里關聯了對象,那么當對象的某個值改變的時候,同事會出發實時計算。

比如:

<body id="content">

 <parent :childrens="childrens"></parent>

</body>

<!-- 這個測試主要想證明: 對于計算屬性里如果關聯對象,即使對象不是組件作用域內的,當對象在外部改變了某個屬性,同樣會出發計算屬性的方法-->

<script>

 var parent = Vue.extend( {

 props: {

  childrens: ''

 },

 template: '<div >{{age}}</div>',

 data: function() {

  return {

  name: '',

  age: 18

  };

 },

 computed: {

  age: function() {

  return this.childrens.age +10;

  }

 },

 created: function() {

  var _parent = this.$parent;

  this._set = {};

  this._set = _parent; 

 }

 } );

 var vm = new Vue( {

 el: 'body',

 data: {

  childrens: {

  name: '小強',

  age: 20,

  sex: '男'

  }

 },

 components: {

  'parent': parent

 }

 } );

 vm.$data.childrens.age = 10;

</script> 

vm.$data.childrens.age這個值改變的時候,動態觸發computed里的age屬性計算,最后顯示到頁面的結果是:20。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

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

AI

富阳市| 灵川县| 湟中县| 赫章县| 武乡县| 丹凤县| 监利县| 翼城县| 信宜市| 鲜城| 青岛市| 吉林市| 云浮市| 浪卡子县| 平南县| 武川县| 旌德县| 昆明市| 华宁县| 伽师县| 大荔县| 双柏县| 娄底市| 会理县| 永川市| 兰西县| 格尔木市| 长治市| 河池市| 象山县| 雷山县| 新沂市| 阿瓦提县| 若尔盖县| 柘城县| 宜兰县| 武宁县| 塔城市| 靖宇县| 望城县| 昂仁县|