Vue父子元件傳值

2021-09-25 08:14:50 字數 1688 閱讀 3654

在進行元件傳值之前需要先掌握以下基礎知識:

1:傳值型別:

除了可以傳遞string外,還可以向子元件傳遞數字,布林,陣列,物件。

需要注意的是在傳遞資料時,即便資料是靜態的我們仍然需要使用v-bind,來告訴vue這是乙個數字/布林/陣列/物件而非字串:

//v-bind告訴vue這是乙個數字而非字串

傳遞布林時:prop沒有值意味著值為true。若值為false,即便false是乙個靜態值,我們仍然需要使用v-bind來告訴vue這是乙個布林值而非字串。

//is-published沒有值意味著值實際上為true

//使用v-bind告訴vue這是乙個布林值false,v-bind可簡寫為:

傳遞陣列:

傳遞物件:

2:prop驗證:

我們可以在子元件內對父元件傳遞過來的值進行驗證,以及設定預設值,設定是否必傳。若傳遞過來的值與子元件預期的值型別不一致則會報錯。

type:規定資料型別,default:設定資料預設值,required:規定是否必須。

例如:

props:,

// 標籤型別,0沒有,1為hot,2為new,3為禮包

tagtype:,

// 是否有右側按鈕,0沒有,1有

more:,

}

vue還提供自定義驗證函式:

props:

}}

3:單向資料流:

所有的 prop 都使得其父子 prop 之間形成了乙個單向下行繫結:父級 prop 的更新會向下流動到子元件中,但是反過來則不行。這樣會防止從子元件意外改變父級元件的狀態,從而導致你的應用的資料流向難以理解。

也就是說子元件是不可以改變父元件傳遞過來的值,那麼如果我們需要對傳遞過來的值進行操作該怎麼辦?

有兩種方法:1:在data中定義乙個資料,將傳遞過來的值作為初始值,然後操作data定義的這個資料。

2:通過計算屬性

元件傳值:

1:父元件向子元件傳值:

父元件可以向子元件傳遞靜態或動態的值。子元件通過props來接收父元件傳遞過來的值。

--傳遞靜態值:

父元件內使用自元件並傳遞靜態值:mtitle

在子元件內通過props來接收父元件傳遞的值: 

props:,

},

使用父元件傳遞過來的值:

使用與data內值的使用方式一樣,直接通過this.值名稱即可獲取使用。

--傳遞動態值:

傳遞動態值需要使用v-bind動態賦值。

2:子元件向父元件傳值:

在vue中子元件是無法直接向父元件傳值的,只能通過觸發方法的形式通過this.$emit()傳遞值。在父元件中監聽子元件事件來獲取值。

子元件:

我是子元件

按鈕

父元件內:

我是父元件

//使用子元件並監聽

Vue元件傳值 父子元件傳值

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

父子組建傳值 vue 父子元件傳值

父元件傳給子元件 子元件通過props方法接收資料 子元件傳給父元件 通過 emit方法傳遞引數 一 props方法 1.靜態傳值 父元件中子元件的標籤設定乙個自定義屬性並賦值 子元件中通過props方法接收 export default 2.動態傳值 根據父元件中值的變化,動態改變子元件中的值 父...

vue父子元件傳值

一.父元件傳給子元件 父元件是parent.vue,子元件是children.vue。1.父元件引入子元件模組,在parent.vue的script中寫以下 並在components中註冊該元件 import centerfigner from components children 在templa...