javascript - 請問下面代碼中的...是擴展運算符還是操作運算符?這樣寫是什么意思?
問題描述
vuex中的代碼
computed:{ ...mapState(['count']), count(){return this.$store.getters.count; }},
請問mapState前面的...是什么意思?加這個和不加這個有什么區別?已經看過擴展運算符和操作運算符的相關文檔,不過還是不太明白,求詳細點的解釋。。
問題解答
回答1:自己寫幾個例子不就知道了…………比如:
const state = { a: 1, b: 2, c: 3};const now = { ...state, d: 4, e: 5};console.log(now);
這個語法大部分瀏覽器還不支持,所以你可以先去babel轉一下,把轉碼后的代碼直接放到控制臺運行,看看出來的是啥。這個運算符其實挺簡單的……
回答2:... 把對象在此地展開為鍵值對。如果直接寫,有語法錯誤或者邏輯錯誤。
借用 @xiaoboost 的例子:
有 ... 運算符,點擊查看
const state = { a: 1, b: 2, c: 3};const now = { ...state, d: 4, e: 5};console.log(now);
結果是
Object { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
沒有 ... 運算符,點擊查看
結果是:
Object { 'd': 4, 'e': 5, 'state': Object { 'a': 1, 'b': 2, 'c': 3 }}回答3:
...mapState(['count'])加...是為了將mapState對象分割,返回分離的各項,就可與局部計算屬性(computed)混合使用了不加... mapState可是一個對象 computed也是一個對象 那就得一個一個的屬性賦值吧或者你computed對象里不打算有其他屬性,你直接computed:mapState(['count'])應該也可以
相關文章:
1. angular.js - 百度支持_escaped_fragment_嗎?2. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?3. node.js - Vue+Webpack在dev環境下沒有問題build后出現莫名錯誤4. node.js - nodejs+express+vue5. css3 - 如圖的flex骰子布局是怎么實現的?6. javascript - ios返回不執行js怎么解決?7. css3 - 這個CSS樣式是什么意思?8. html - css布局問題,在firebug下<a>標簽嵌入<img>標簽但是高度<a>總比<img>多4個像素9. 微信公眾號實現消息模板的推送?10. javascript - vue2.0中使用vue2-dropzone的demo,vue2-dropzone的github網址是什么??百度不到。
