Vue 多級元件巢狀傳值

2022-07-01 20:06:10 字數 1292 閱讀 9527

遇到多級元件巢狀傳值的時候我們想到的應該是

1.props 和 $emit (如果巢狀元件過多的話,會使**邏輯過於繁瑣) 

2. vuex (一般用於大型專案中,只是用來傳值有點大材小用了)

3. bus (建乙個公共的js雙方傳值和獲取值,這種方法不能很好的實現事件監聽)

vue 2.4版本開始,新增了$attrs$listeners方法用於隔代傳值

$attrs: 用於傳遞屬性      inheritattrs: false,(這個屬性可以讓傳遞的屬性不顯示在標籤上)

$listeners: 用於傳遞方法

搞個案例

// 祖元件

:p-child1="child1":p-child2="child2":p-child3="child3"v-on:test1="ontest1"v-on:test2="ontest2"

>

// 父元件

in child1:

props: }

// 步驟3:步驟1 props獲取到的值在此處展示

$attrs: }

// 步驟4: 除去props展示的其他沒有展示的屬性

// 步驟5:沒有展示的屬性使用 v-bind="$attrs" 傳遞屬性 v-on="$listeners" 傳遞方法

// 子元件

in child2:

props: }

// 步驟3:props獲取到的屬性值用於展示

$attrs: }

// 步驟4:傳遞的沒有被props所接收的其他屬性

** 給大家展示一下

inheritattrs:false 的時候

inheritattrs: true的時候 (因為在父元件中 props:['pchild1'])  所以只展示沒有被獲取的

最後的結果展示

Vue元件傳值 父子元件傳值

父元件可以引入 使用子元件,從業務上看,該父元件有可能對子元件有個性化需求,為了體現元件的靈活多變,可以通過傳值實現。應用情景 語法 父元件要在子元件標籤上通過屬性值方式傳值 子元件標籤 name value name value name value 子元件標籤 子元件接收並應用值,具體通過pro...

vue 元件傳值 父子元件傳值,兄弟元件傳值

父向子 v bind props 子元件 子元件 props msg props接收 props 驗證 props food接受數值型別的引數,如果不傳入的話預設就是100 food fooe接受物件型別的引數 fooe foof使用乙個自定義的驗證器 foof foog props 是單向繫結的 ...

Vue元件傳值

學習vue的傳值心得,剛入門vue,大佬勿噴,請多多指教。1.父元件傳值子元件 父元件巢狀子元件式,在標籤裡繫結 子元件用props屬性接收 例 父元件傳值,為縮寫,等同於v bind obj item props obj count 子元件接收傳值,可直接使用,但是推薦在下方重新賦值給新變數再使用...