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. 哭遼 求大佬解答 控制器的join方法怎么轉模型方法2. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現存在即更新應該使用哪個標簽?3. Navicat for mysql 中以json格式儲存的數據存在大量反斜杠,如何去除?4. mysql - 表名稱前綴到底有啥用?5. 編輯成功不顯示彈窗6. mysql - 怎么生成這個sql表?7. sql語句 - 如何在mysql中批量添加用戶?8. 怎么php怎么通過數組顯示sql查詢結果呢,查詢結果有多條,如圖。9. mysql - 數據庫表中,兩個表互為外鍵參考如何解決10. mysql儲存json錯誤
