最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳細(xì)聊聊vue中組件的props屬性

 更新時(shí)間:2021年11月02日 12:01:06   作者:suoh''''''''''''''''s Blog  
父子組件之間的通信就是props down,events up,父組件通過屬性props向下傳遞數(shù)據(jù)給子組件,子組件通過事件events 給父組件發(fā)送消息,這篇文章主要給大家介紹了關(guān)于vue中組件的props屬性的相關(guān)資料,需要的朋友可以參考下

今天這篇文章,讓你徹底學(xué)會(huì)props屬性……

props主要用于組件的傳值,他的工作就是為了接收外面?zhèn)鬟^來的數(shù)據(jù),與data、el、ref是一個(gè)級(jí)別的配置項(xiàng)。

問題一:那props具體是怎么使用呢?原理又是什么呢?往下看

1、【定義被調(diào)用組件】首先,我們先定義一個(gè)person組件,用于顯示個(gè)人信息的組件,我們放了一個(gè)人的姓名,性別,以及年齡,定義好這個(gè)組件之后,就可以等待其他組件進(jìn)行調(diào)用。那么既然別的組件可以調(diào)用,我們就需要再定義一個(gè)props屬性,用于接收別的組件傳進(jìn)來的值。

 注意:組件中name、sex、age都是一個(gè)prop,將三個(gè)屬性放到一起,就是props,這就是props的由來,是prop的復(fù)數(shù)形式,代表多個(gè)prop屬性的集合。

 2、【調(diào)用組件】此時(shí)我們?cè)俣x一個(gè)info組件,用于展示這個(gè)人的基本信息,進(jìn)行對(duì)person組價(jià)的調(diào)用實(shí)現(xiàn)信息的展示,分為下圖四個(gè)步驟進(jìn)行調(diào)用。并傳入?yún)?shù)

 3、【看效果】傳入成功。

問題二:那如果我們想給年齡加1歲,怎么實(shí)現(xiàn)?

我們可能會(huì)直接這樣加1

看效果是否能實(shí)現(xiàn),變成19,看下圖顯然是不正確的。因?yàn)槟銈魅氲哪挲g是個(gè)字符串18,所以加1只會(huì)在18后面進(jìn)行拼接。

然后有的人說,那傳數(shù)字,怎么傳數(shù)字呢?很簡(jiǎn)單,一個(gè)符號(hào)搞定。

我們只需要在age前面加上冒號(hào) :他就會(huì)只識(shí)別雙引號(hào)里面的東西18 ,否則識(shí)別的是雙引號(hào)18

看下效果,此時(shí)就成功了。

問題三:對(duì)于年齡這一類型,我們最希望拿到的是什么數(shù)據(jù)類型?

肯定是數(shù)字類型,但是有人非要傳字符串類型,就會(huì)影響我們對(duì)年齡的計(jì)算,比如上面的加1……那么我們?nèi)绾蜗拗祁愋湍兀?/strong>

這時(shí)候props不能再用[]去定義,需要用{},因?yàn)橄拗祁愋蜁r(shí),props就是作為一個(gè)對(duì)象去使用;

下面就是我們將三個(gè)屬性分別做了限制。

我們把年齡做了number類型限制后,再傳入字符串18,看有什么變化?

此時(shí)發(fā)現(xiàn)控制臺(tái),會(huì)報(bào)錯(cuò),顯示age的數(shù)據(jù)類型不匹配。

雖然不影響展示,但是會(huì)報(bào)錯(cuò)。這可以給我們提供一個(gè)明確的提示。方便我們規(guī)范的傳入數(shù)據(jù)。

 

問題四:可以限制類型,那是不是也可以限制是否必傳呢?

答:當(dāng)然可以。

假設(shè)姓名必傳,其他非必傳。

類型屬性:type:xx

必傳屬性:required:true

默認(rèn)屬性:default:xx

name必傳,那么我們不傳試試,年齡不傳默認(rèn)18

結(jié)果,控制臺(tái)同樣報(bào)錯(cuò),提示,name是必傳屬性。年齡我們沒傳,也成功展示的是默認(rèn)值,19是因?yàn)橐婚_始對(duì)年齡進(jìn)行了加1操作,這樣我們就成功對(duì)屬性進(jìn)行了限制。

 

對(duì)以上總結(jié):

props在接收數(shù)據(jù)的同時(shí),對(duì)數(shù)據(jù)進(jìn)行了類型限制+默認(rèn)值的指定+必要性的限制

問題五:props接收的屬性值可以修改嗎?

答:不可以

我們添加一個(gè)button,以及點(diǎn)擊事件

 注意:我們要訪問props里面的屬性值,通過this.即可找到

 

 查看結(jié)果,發(fā)現(xiàn)頁(yè)面可以顯示,但是控制臺(tái)報(bào)錯(cuò),因此它是不可修改的

問題六:必須要修改props屬性值,怎么辦?

答:通過data去間接修改

我們?cè)赿ata里面重新定義一個(gè)變量去接收props屬性。這個(gè)變量最好不要重名,重名的話,優(yōu)先獲取props屬性值,優(yōu)先級(jí)props>data。然后我們?cè)诓僮骰蛘遠(yuǎn)tml綁定值的時(shí)候,都去操作data里面新定義的變量

此時(shí)可以看到,修改成功,也沒有報(bào)錯(cuò):

總結(jié):配置項(xiàng)props

-------讓組件接收外部傳來的數(shù)據(jù)

 接收數(shù)據(jù)三種方式:

(1)只接收:props: ['name','age','sex']

(2)接收并限制類型:props: { "name":Number }

(3)限制類型、限制必要性指定默認(rèn)值:

    props:{
        "name":{
            type:String,
            required:true
        },
        "age":{
            type:Number,
            default:18
        },
        "sex":{
            type:String,
            default:'男'
        },
    },

注意:props是只讀的,vue底層會(huì)檢測(cè)你對(duì)props的修改,如果進(jìn)行了修改,控制臺(tái)會(huì)報(bào)錯(cuò),必須修改,就復(fù)制一份到data中,通過data去修改數(shù)據(jù)。

到此這篇關(guān)于vue中組件的props屬性的文章就介紹到這了,更多相關(guān)vue組件的props屬性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue 數(shù)據(jù)綁定的原理分析

    Vue 數(shù)據(jù)綁定的原理分析

    這篇文章主要介紹了Vue 數(shù)據(jù)綁定的原理,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-11-11
  • 微信小程序?qū)崙?zhàn)基于vue2實(shí)現(xiàn)瀑布流的代碼實(shí)例

    微信小程序?qū)崙?zhàn)基于vue2實(shí)現(xiàn)瀑布流的代碼實(shí)例

    瀑布流,又稱瀑布流式布局,是比較流行的一種網(wǎng)站頁(yè)面布局,視覺表現(xiàn)為參差不齊的多欄布局,隨著頁(yè)面滾動(dòng)條向下滾動(dòng),這種布局還會(huì)不斷加載數(shù)據(jù)塊并附加至當(dāng)前尾部,這篇文章主要介紹了微信小程序?qū)崙?zhàn),基于vue2實(shí)現(xiàn)瀑布流,需要的朋友可以參考下
    2022-12-12
  • vue2.0自定義指令示例代碼詳解

    vue2.0自定義指令示例代碼詳解

    指令通常以"v-"作為前綴, 以方便Vue知道你在使用一種特殊的標(biāo)記。這篇文章主要介紹了vue2.0自定義指令的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • vue日期組件 支持vue1.0和2.0

    vue日期組件 支持vue1.0和2.0

    這篇文章主要為大家詳細(xì)介紹了vue日期組件,支持vue1.0和2.0,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 淺談Vue的雙向綁定和單向數(shù)據(jù)流沖突嗎

    淺談Vue的雙向綁定和單向數(shù)據(jù)流沖突嗎

    單項(xiàng)數(shù)據(jù)流和雙向數(shù)據(jù)綁定的概念,這兩種不是相互沖突的嗎?即然能用v-model雙向數(shù)據(jù)綁定,不應(yīng)該就是雙向數(shù)據(jù)流了嗎?本文就詳細(xì)的介紹一下
    2022-04-04
  • 詳解vue如何封裝封裝一個(gè)上傳多張圖片的組件

    詳解vue如何封裝封裝一個(gè)上傳多張圖片的組件

    上傳圖片不管是后臺(tái)還是前端小程序,上傳圖片都是一個(gè)比不可少的功能有時(shí)候需要好幾個(gè)頁(yè)面都要上傳圖片,每個(gè)頁(yè)面都寫一個(gè)非常不方便,本文就給大家介紹vue如何封裝一個(gè)上傳多張圖片的組件,需要的朋友可以參考下
    2023-07-07
  • 基于Electron+Vite快速構(gòu)建Vue3桌面應(yīng)用

    基于Electron+Vite快速構(gòu)建Vue3桌面應(yīng)用

    這篇文章主要介紹了如何基于Electron和Vite快速構(gòu)建Vue3桌面應(yīng)用,本文主要技術(shù)棧就是Vue3、vite、Electron,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-07-07
  • 解析vue.js中常用v-指令

    解析vue.js中常用v-指令

    本文以click為例給大家介紹vue.js中常用v-指令,可以用 v-on 指令監(jiān)聽 DOM 事件,并在觸發(fā)時(shí)運(yùn)行一些 JavaScript代碼,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • Vite多環(huán)境配置項(xiàng)目高定制化能力詳解

    Vite多環(huán)境配置項(xiàng)目高定制化能力詳解

    這篇文章主要為大家介紹了Vite多環(huán)境配置項(xiàng)目高定制化能力詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 解決vite打包后白屏之router-view不生效問題

    解決vite打包后白屏之router-view不生效問題

    這篇文章主要介紹了解決vite打包后白屏之router-view不生效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評(píng)論

沾益县| 宁陕县| 遵义市| 栾川县| 越西县| 隆尧县| 瑞昌市| 德化县| 洞口县| 徐州市| 建德市| 新泰市| 荣成市| 泰顺县| 桦川县| 阿克苏市| 平度市| 铜鼓县| 正定县| 德阳市| 苍梧县| 锦州市| 北碚区| 彩票| 台山市| 竹山县| 襄垣县| 恩施市| 陵水| 金寨县| 仙居县| 石渠县| 安阳县| 慈利县| 珲春市| 乌拉特前旗| 尉氏县| 桓仁| 辉南县| 开平市| 桑植县|