擴展運算符及其在vuex的輔助函數里的應用詳解


      一、擴展運算符
   <1>為什么擴展運算符會誕生?
             因為箭頭函數沒有arguments,所以才有了擴展運算符
       <2>在箭頭函數里面是沒有arguments,但是在普通函數里是有的。
 
             當形參數量不固定時,用arguments進行接收,而箭頭函數里面沒有,該如何接收?這時候就要用擴展運算符。
      <3>箭頭函數里面的擴展運算符可以看成arguments。
    但是還是有區別的,arguments一定是個偽數組,而擴展運算符就不一定了,傳進來是什么東西,擴展運算符就是什么東西。    
          箭頭函數中:
 
        
 
           數組中:
        在數組里面...是展開的意思。
 
    

 

 
二、擴展運算符在vuex里輔助函數的應用
    
    ...的意思就是將State里的數據全部展開,括號里的參數就表示你從展開中的數據拿指定的數據放到當前的computed之中。
        這種參數是數組的方式有弊端,如果想對數據進行處理的,無法處理,所以一般里面都寫成對象:
        
    用這種寫法可以對數據進行處理:
        
    注:只有mapState能用對象跟函數的方式,而其它的輔助函數,后面只能對象后面跟字符串;
 
    用擴展運算符取actions里的方法:
        參數用數組的形式取:
        
    這種方式有大弊端:
    如果在store的主模塊文件index.js里配置的有fn函數,在子模塊actions文件里也有fn函數,這種方式寫就會觸發兩個fn函數。
    
        所有我們里面寫成對象的形式:
        在模塊的小配置文件index.js里配置一個屬性 namespaces=true --子模塊的命名空間不與主模塊的命名空間產生空間。
        
        如果要取子模塊actions里的fn函數,則:
        
        如果要取store的主模塊文件index.js里配置的有fn函數,則不用加作用域了:
        
 
總結:映射時函數參數用對象比較安全,推薦使用對象形式取值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM