javascript - vue中使用prop傳遞數(shù)據(jù)問題
問題描述
在vue2.0的文檔中,關(guān)于prop的介紹,有些不明白。既然是通過prop獲取父組件的數(shù)據(jù)的,但是使用之后,為什么在子組件中又重新賦值呢?并沒有拿到父組件的值啊?
為什么需要給child組件再附加一個(gè)類似屬性的message并賦值呢?不是應(yīng)該直接寫<child></child>之后,就自動(dòng)顯示出<span>父組件message值</span>,不應(yīng)該這樣顯示的嗎?
請問這個(gè)應(yīng)該怎么理解啊?為什么會(huì)是這樣的呢?prop應(yīng)該如何使用呢?
問題解答
回答1:可以這么理解。
父組件傳值給child組件。<child message=’hello’></child>子組件中有兩個(gè)地方用到了message,props區(qū)塊是注冊可能用到的變量。比如:<child message=’hello’ dep=’ssd’></child>對應(yīng)的props就應(yīng)該是[’message’,’dep’]template中{{message}}才是真正的調(diào)用變量。按你說的<child></child> 直接顯示,應(yīng)該是這樣template:’<span>hello</span> :)
為什么要寫成這樣的結(jié)構(gòu)?是考慮到組件的復(fù)用性,僅改變傳入的值就可以實(shí)現(xiàn)不同的功能。
回答2:在父組件作用域使用 v-bind:props=’data’的形式把父組件數(shù)據(jù)傳遞給子組件
回答3:是不是可以理解為子組件同時(shí)也可以修改父組件傳過來的值呢。
相關(guān)文章:
1. MySQL數(shù)據(jù)庫中文亂碼的原因2. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!3. docker gitlab 如何git clone?4. angular.js - 關(guān)于$apply()5. angular.js - angularjs的自定義過濾器如何給文字加顏色?6. docker-compose 為何找不到配置文件?7. docker api 開發(fā)的端口怎么獲取?8. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下9. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失敗???10. dockerfile - 為什么docker容器啟動(dòng)不了?
