Vue的props配置項詳解
簡介
主要介紹props配置項的概念,使用等。
props的作用是用來接收父組件中傳過來的數(shù)據(jù)。
編寫步驟有兩個:
- 子組件使用props配置項進(jìn)行屬性的接收。
- 父組件使用子組件時以組件標(biāo)簽屬性的形式進(jìn)行數(shù)據(jù)的傳遞。
子組件使用props配置項進(jìn)行屬性的接收的形式有三種:
第一種:簡單模式。
main.js:
//引入vue依賴
import Vue from 'vue'
//引入組件App
import App from './App.vue'
// 關(guān)閉生產(chǎn)提示
Vue.config.productionTip = false
//創(chuàng)建一個vue實例
new Vue({
//這個目前還沒學(xué)過,先知道他的作用是將app放入容器中。
render: h => h(App),
//配置該vue實例管理id為app的容器
}).$mount('#app')
App.vue:
<template>
<!-- 編寫結(jié)構(gòu) -->
<div>
<!-- 父組件編寫組件標(biāo)簽時,將數(shù)據(jù)以屬性的方式進(jìn)行傳遞。 -->
<student studentName="Yehaocong" studentAge="25"></student>
<student studentName="Liaoxiaoyan" studentAge="21"></student>
</div>
</template>
<script>
import student from "./components/Student.vue"
export default {
components:{
//注冊組件
student
}
}
</script>
<style>
</style>
Student.vue:
<template>
<!-- 編寫組件結(jié)構(gòu)代碼,也就是html代碼 -->
<!-- 需要一個div括住,也就是只能有一個根元素,一般使用div -->
<div class="orange">
<div>學(xué)生姓名:{{studentName}}</div>
<div>年齡:{{studentAge}}</div>
</div>
</template>
<script>
//交互代碼編寫的地方,需要暴露出去給其他地方引入
//這個需要有一點es6模塊化的知識,這里一般使用默認(rèn)暴露,因為這是單文件組件,只需要暴露一個組件對象,
//并且引入默認(rèn)暴露的組件引入語法比較簡單。
export default {
data() {
return {
}
},
//簡便寫法,用于接收父組件傳遞過來的數(shù)據(jù)
//數(shù)組形式,里面聲明屬性名稱即可
props:["studentName","studentAge"],
}
</script>
<style>
/* 編寫樣式的地方 */
.orange{
background-color: orange;
}
</style>
效果:可以看到數(shù)據(jù)以正確顯示。

但是以上由一個文件,就是父組件進(jìn)行數(shù)據(jù)的傳遞,是以普通屬性的方式進(jìn)行傳遞的,這樣會導(dǎo)致傳遞的所有屬性的值的類型都是字符串。
例子:
將年齡默認(rèn)是傳遞過來加一。

效果:

所以不能使用普通的屬性傳遞,需要借助v-bind指令進(jìn)行綁定屬性值,如果使用v-bind進(jìn)行屬性的綁定,會返回表達(dá)式返回的值,所以可以控制屬性值的類型。

效果:

如果使用v-bind屬性綁定的形式進(jìn)行屬性傳遞,還可以傳遞數(shù)組、對象類型的數(shù)據(jù)。


效果:

第二種方式可以限制數(shù)據(jù)的類型:

故意將年齡屬性設(shè)置為字符串。

效果:書名這種限制只是一個控制臺的警告,實際不影響展示。

第三種方式:可以限制類型,可以設(shè)置默認(rèn)值,可以設(shè)置是否必須。

傳遞時,第二個標(biāo)簽不傳遞年齡,來測試默認(rèn)值,第一個標(biāo)簽不傳遞名字,以測試必須。

效果:

可以發(fā)現(xiàn),里面的限制,僅僅會發(fā)出控制臺警告,但是不影響使用。
props的熟悉是只讀的,如果修改,會控制臺警告,但是還是會修改成功的,只是會警告一下。


效果:

如果實際業(yè)務(wù)需求需要更改props屬性,那么可以復(fù)制一份props的內(nèi)容到data,然后修改data中的數(shù)據(jù)。

效果:

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Element中el-select下拉框?qū)崿F(xiàn)選中圖標(biāo)并回顯圖標(biāo)
本文主要介紹了Element中el-select下拉框?qū)崿F(xiàn)選中圖標(biāo)并回顯圖標(biāo),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
ant-design-vue 時間選擇器賦值默認(rèn)時間的操作
這篇文章主要介紹了ant-design-vue 時間選擇器賦值默認(rèn)時間的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨過來看看吧2020-10-10
Vue+Openlayer使用modify修改要素的完整代碼
這篇文章主要介紹了Vue+Openlayer使用modify修改要素的完整代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09
Vue 如何使用props、emit實現(xiàn)自定義雙向綁定的實現(xiàn)
這篇文章主要介紹了Vue 如何使用props、emit實現(xiàn)自定義雙向綁定的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
使用el-table做成樹形結(jié)構(gòu)并解決數(shù)據(jù)驅(qū)動視圖問題
這篇文章主要介紹了使用el-table做成樹形結(jié)構(gòu)并解決數(shù)據(jù)驅(qū)動視圖問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07

