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. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?2. docker gitlab 如何git clone?3. css3 - border-bottom 的長度可否超過盒子的寬度呢?實現如下圖效果。(我的書下面的線)4. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?5. java - spring boot @Autowired6. JavaScript事件7. mysql scripts提示 /usr/bin/perl: bad interpreter8. android - 用textview顯示html時如何寫imagegetter獲取網絡圖片9. mysql優化 - mysql EXPLAIN之后怎么看結果進行優化 ?10. css3 - css怎么實現圖片環繞的效果
