vue 計算屬性和偵聽器的使用小結(jié)
<!DOCTYPE html><html> <head> <meta charset='utf-8'> <script src='https://cdn.staticfile.org/vue/2.4.2/vue.min.js'></script> </head> <body> <div id='app'><p>{{ message }}</p><p>{{ reversedMessage }}</p> </div> <script> new Vue({el: ’#app’,data: {message: ’hello’},computed: {reversedMessage: function () {return this.message.split(’’).reverse().join(’’)}/*// 相當(dāng)于reversedMessage: {get(){return this.message.split(’’).reverse().join(’’)}}*/} }); </script> </body></html>
解釋:我們在屬性computed中定義了計算屬性reversedMessage,這里提供的函數(shù)將作為計算屬性reversedMessage的getter函數(shù)。
1.2 setter計算屬性默認(rèn)只有g(shù)etter,不過我們可以提供一個setter。
<!DOCTYPE html><html> <head> <meta charset='utf-8'> <script src='https://cdn.staticfile.org/vue/2.4.2/vue.min.js'></script> </head> <body> <div id='app'><p>{{ message }}</p><p>{{ reversedMessage }}</p><input type='text' v-model='reversedMessage' /> </div> <script> new Vue({el: ’#app’,data: {message: ’hello’},computed: {reversedMessage: {get(){return this.message.split(’’).reverse().join(’’)},set(value){this.message = value.split(’’).reverse().join(’’)}}} }); </script> </body></html>1.3 緩存
<!DOCTYPE html><html> <head> <meta charset='utf-8'> <script src='https://cdn.staticfile.org/vue/2.4.2/vue.min.js'></script> </head> <body> <div id='app'><p>{{ message }}</p><p>{{ reversedMessage }}</p><p>{{ reversedMessage1() }}</p> </div> <script> new Vue({el: ’#app’,data: {message: ’hello’},methods: {reversedMessage1: function(){return this.message.split(’’).reverse().join(’’)}},computed: {reversedMessage: function () {return this.message.split(’’).reverse().join(’’)}} }); </script> </body></html>
注意:雖然通過計算屬性和方法,都可以達(dá)到同樣的效果,但是計算屬性是基于它們的響應(yīng)式依賴進(jìn)行緩存的。只在相關(guān)響應(yīng)式依賴發(fā)生改變時它們才會重新求值。
1.4 偵聽屬性通過Vue實例的watch屬性可以偵聽數(shù)據(jù)的變化。
<!DOCTYPE html><html> <head> <meta charset='utf-8'> <script src='https://cdn.staticfile.org/vue/2.4.2/vue.min.js'></script> </head> <body> <div id='app'><p>{{ message }}</p><button @click='reverse=!reverse'>反轉(zhuǎn)</button> </div> <script> new Vue({el: ’#app’,data: {message: ’Vue’,reverse: false},watch: {// message: function(newVal, oldVal){reverse: function(newVal){console.log(newVal)this.message = this.message.split(’’).reverse().join(’’)}}, }); </script> </body></html>
我們可以通過實例屬性vm.$watch達(dá)到同樣的效果。
<!DOCTYPE html><html> <head> <meta charset='utf-8'> <script src='https://cdn.staticfile.org/vue/2.4.2/vue.min.js'></script> </head> <body> <div id='app'><p>{{ message }}</p><button @click='reverse=!reverse'>反轉(zhuǎn)</button> </div> <script> var vm = new Vue({el: ’#app’,data: {message: ’Vue’,reverse: false} });// vm.$watch(’reverse’, function (newVal, oldVal) {vm.$watch(’reverse’, function (newVal) {console.log(newVal)this.message = this.message.split(’’).reverse().join(’’)}); </script> </body></html>
以上就是vue 計算屬性和偵聽器的使用小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于vue 計算屬性和偵聽器的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. AspNetCore&MassTransit Courier實現(xiàn)分布式事務(wù)的詳細(xì)過程2. CSS3中Transition屬性詳解以及示例分享3. html清除浮動的6種方法示例4. ASP腳本組件實現(xiàn)服務(wù)器重啟5. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法6. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))7. XHTML 1.0:標(biāo)記新的開端8. 低版本IE正常運行HTML5+CSS3網(wǎng)站的3種解決方案9. css進(jìn)階學(xué)習(xí) 選擇符10. 怎樣才能用js生成xmldom對象,并且在firefox中也實現(xiàn)xml數(shù)據(jù)島?
