元件之間存在的三種關係:
元件傳值的方式:
props:父傳子
$emit / $on:子傳父
$bus => $emit / $on:事件匯流排。(匯流排傳值)
vuex:狀態管理
$attrs / $listeners:
$parent / $children:
provide / inject:
localstorage / sessionstorage:儲存本地
.sync:(擴充套件,無需傳值)
v-model:(擴充套件,無需傳值)
ref:(擴充套件,無需傳值)
存在父子關係:「props」和「$emit / $on」。
存在兄弟關係:
存在跨層級關係:「provide / inject」。
多個元件訪問同一值(屬性):vuex
通用方式:「$bus」。
注意:當多個元件需要同時訪問同一屬性時,最好不要通過傳值的方式,而選擇vuex,畢竟傳值的方式後期維護成本很高,稍微改一點,多個元件都要同時改。
使用場景:子元件需要使用父元件的值(屬性)
使用方法:
//父元件這邊傳遞 father.vue
"currentindex"
>
<
/child>
//第四步:使用子元件,並傳遞資料「currentindex」。
<
/div>
<
/template>
import child from
"./components/child"
//第一步:引入子元件
export
default},
components:
}<
/script>
//子元件這邊接收處理 child.vue
}<
/div>
//第二步:這裡就可以直接使用了。
<
/div>
<
/template>
export
default}}
<
/script>
props中的全部引數:
msg:{總結:父元件通過props向下傳遞資料給子元件。type: 型別(可以是多個型別),
default: 預設值,
required: 是否為必填項,
validator (value) {}: 驗證函式
}
使用場景:子元件需要更改從父元件傳遞過來的值。且子元件是不能直接修改父元件傳遞過來的值。
使用方法:
//子元件派發事件 child.vue
"changebtn"
>按鈕<
/div>
<
/div>
<
/template>
export
default},
methods:}}
<
/script>
//父元件通過繫結該事件,監聽到該事件時,並更改值。 father.vue
"updatevalue"
>
<
/child>
//第一步:給子元件新增自定義事件「updateval」
<
/div>
<
/template>
import child from
"./components/child"
export
default},
components:
, methods:},
}<
/script>
總結:子元件通過events給父元件傳送訊息,實際上就是子元件把自己的資料傳送到父元件。
使用方法:
//建立bus檔案 bus.js
import vue from
'vue'
export
default
newvue()
;
//將bus掛載在vue全域性上。main.js(在這個檔案中新增如下**)
import bus from
'./eventbus/bus.js'
vue.prototype.$bus=bus;
// a元件
"a">
"sendmsg"
>按鈕<
/button>
<
/div>
<
/template>
export
default}}
<
/script>
// b元件
}<
/div>
<
/template>
export
default
}mounted()
)}}<
/script>
使用場景:多個元件訪問同一屬性時,為方便後期的維護。
由於vuex涉及的知識點過多,這裡我單獨抽離出成了一篇文章。
鏈結:
說明:vuex中的資料是響應式的,並沒有儲存起來,如果重新整理了的話就回到了初始值。具體做法應該在vuex
裡資料改變的時候把資料拷貝乙份儲存到localstorage
裡面,重新整理之後,如果localstorage
裡有儲存的資料,取出來再替換store
裡的state
。
待定。待定。
待定。
vue元件之間傳值方式
vue元件之間傳值方式解析 一.父元件傳到子元件 1.父元件parent 如下 2.子元件son 如下 子元件接收到內容 3.效果圖如下 二.子元件向父元件傳值 通過繫結事件然後及 emit傳值 1.父元件parent 如下 父元件接手到的內容 2.子元件son 如下 子元件接收到內容 傳值3.效果...
vue元件之間的傳值方式
父元件向子元件傳遞資料 父元件中通過繫結屬性傳遞資料 子元件通過props接收資料 使用 單向資料流 父元件可以向子元件通過屬性形式傳遞引數,傳遞的引數也可以隨時隨意修改 但子元件不能修改父元件傳遞過來的引數,只能使用父元件傳遞的資料 sync修飾符 事件繫結的語法糖,應用於父子元件傳值時,且子元件...
Vue 元件之間傳值
一 父元件向子元件傳遞資料 在 vue 中,可以使用 props 向子元件傳遞資料。子元件部分 這是 header.vue 的 html 部分,logo 是在 data 中定義的變數。如果需要從父元件獲取 logo 的值,就需要使用props logo 在 props 中新增了元素之後,就不需要在 ...