javascript - vue 計算屬性怎么傳參
問題描述
計算屬性怎么傳參?
<ul> <li v-for='item in goods' : v-text='item.name'></li></ul>data: { goods: [{id: 2,type: 3,name: ’薯片’ },{id: 3,type: 5,name: ’冰紅茶’}]},computed: { goodsType: function(type){switch (type) { case 3:return 'color: #ff9900'break; case 5:return 'color: #00BC0C'break;} }}
問題解答
回答1:傳不了參的,你可以寫成methods
回答2:首先,計算屬性里的方法是傳不了參的,根據你的代碼我想你想要實現的是根據type的改變去返回顏色,那么你應該明白的是計算屬性返回的值只跟它里面的依賴有關,當依賴改變的時候就會觸發計算屬性去重新計算然后改變值,所以你應該讓type變成該vm的一個數據,進而成為該計算屬性的依賴。簡單代碼如下:
data: { goods: [], type: 0 //這個type作為你后面計算屬性的依賴項,通過其他方法改變它的值即可。},computed: { goodsType: function(){//這里將會依賴于此vm的type值,當type值改變,就會重新計算switch (this.type) { case 3:return 'color: #ff9900'break; case 5:return 'color: #00BC0C'break;} }}回答3:
這個需求用一個對象實例數據不就可以解決了嗎?
colors: { 3: ’#ff9900’, 5: ’#00BC0C’}
綁定 style 為 {color: colors[item.type]}
回答4:https://cn.vuejs.org/v2/guide...計算-setter
計算屬性默認只有 getter ,不過在需要時你也可以提供一個 setter :
// ...computed: { fullName: { // getter get: function () { return this.firstName + ’ ’ + this.lastName }, // setter set: function (newValue) { var names = newValue.split(’ ’) this.firstName = names[0] this.lastName = names[names.length - 1] } }}// ...
相關文章:
1. mysql 查詢身份證號字段值有效的數據2. mysql - 把一個表中的數據count更新到另一個表里?3. 請教使用PDO連接MSSQL數據庫插入是亂碼問題?4. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處5. python - 數據與循環次數對應不上6. python - 爬蟲模擬登錄后,爬取csdn后臺文章列表遇到的問題7. 視頻文件不能播放,怎么辦?8. 黑客 - Python模塊安全權限9. Python爬蟲如何爬取span和span中間的內容并分別存入字典里?10. node.js - nodejs開發中常用的連接mysql的庫
