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 - html5的data屬性怎么指定一個function函數呢?2. android - RxJava 中有根據條件執行不同函數的操作符嗎?3. angular.js - 輸入郵箱地址之后, 如何使其自動在末尾添加分號?4. 如何解決docker宿主機無法訪問容器中的服務?5. java如何生成token?6. 在mac下出現了兩個docker環境7. javascript - 后臺管理系統左側折疊導航欄數據較多,怎么樣直接通過搜索去定位到具體某一個菜單項位置,并展開當前菜單8. docker-compose中volumes的問題9. javascript - 如何使用nodejs 將.html 文件轉化成canvas10. python - Scrapy存在內存泄漏的問題。
