vue中動態加載組件+開發者模式+JS參數值傳遞和引用傳遞


今天寫vue里面通過接口反參動態加載組件時候 跟着同學。。。學習到了

一、先說說vue 內置組件 component 的用法

component組件可以來專門用來進行組件的切換,使用is來綁定你的組件名,本次系統寫的比較簡單。。。

 

 

此處::is='組件名'可以直接條用組件。

因為全頁面有十個組件加載,所以用到了循環、數組。就遇到了在方法里可以打印數組里的值,但綁定組件名的地方獲取不到的問題。

后來加上了一個數組b,並把b數組的值賦值給a。a就可以獲取到了。就是實現了動態加載組件。

二、觀察者模式

   我需要遍歷的數組值更新了,值也賦值了,為什么視圖不更新?這個問題網上也有很多解釋。

 數組之所以獲取不到是因為綁定中的觀察者模式沒有檢測到b數組的改變,補習了一下觀察者模式。https://blog.csdn.net/xidongdong1/article/details/78613654

意圖:定義對象間的一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自動更新。

主要解決:一個對象狀態改變給其他對象通知的問題,而且要考慮到易用和低耦合,保證高度的協作。

何時使用:一個對象(目標對象)的狀態發生改變,所有的依賴對象(觀察者對象)都將得到通知,進行廣播通知。

如何解決:使用面向對象技術,可以將這種依賴關系弱化。

關鍵代碼:在抽象類里有一個 ArrayList 存放觀察者們。

    在vue中model被定義為觀察者,而view里面進行一處或多處依賴數據綁定即為觀察者。https://www.cnblogs.com/pi-xia/articles/9351432.html中還列舉了一些被觀察者對觀察者的控制方法。

    當a賦值為b后才被觀察者模式檢測到,由此也補習了點JS參數值傳遞和引用傳遞的知識

三、JS參數值傳遞和引用傳遞

 字符串、數字、布爾、數組、對象、Null、Undefined

由於js中的變量是松散類型的,所以它提供了一種檢測當前變量的數據類型的方法,也就是typeof關鍵字.

typeof   123   //Number //NaN/isNaN

typeof   'abc'  //String

typeof    true       //Boolean  //true/false

typeof    undefined   //Undefined

typeof    null        //Object  //被當一個空對象引用了

typeof    { }           //Object

typeof    [ ]           //Object

typeof    console.log()       //Function

三大引用類型:object /Array/Function   (按存儲類型)

值類型,復制值

引用類型,復制值,但其實是地址,實際上是指針。兩個變量都保存了同一個對象地址,則這兩個變量指向了同一個對象。因此,改變其中任何一個變量,都會相互影響

 

 

 

可以這樣理解 數組里的值改變之后,觀察者監聽的是a的值,其實是地址,但地址值並沒有改變。所以監聽不到。而a[]=b[]后,地址值改變就監聽到了。

下面的代碼:

var a=[1,2,3]

function aaa(b){

b.push(4)

}

aaa(a)

alert(a)// [1,2,3,4]

 

這里b、a所指地址一樣,所以b加了值4,a中的值也改變了。

 


此外,值類型賦值應該是存儲的就是a1=3,這樣的值。

 

 

 

這是我目前的理解,這都是以前看過的東西,沒有深刻理解,就忘記了。基礎的東西不應該忘呀!

有問題的地方歡迎指正。。。謝謝

 


免責聲明!

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



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