vue組件屬性(props)及私有數(shù)據(jù)data解析
vue組件中,props是公有屬性,主要對外,相當于類里面的get、set方法操作的屬性;data是私有數(shù)據(jù),主要供組件內(nèi)部訪問。
vue作為一種前端開發(fā)框架,組件是其中的主角吧。其實任何一種前端框架,除了vue,還有react,組件都應該是主角。為啥呢,因為組件最能體現(xiàn)面向?qū)ο笏枷?,單一職責,良好的封裝性,高內(nèi)聚,低耦合,利于復用和維護,提升開發(fā)效率,符合人類思維模式。。。好處多多。
所謂的前端,就是跑在瀏覽器一側(cè)的代碼。以前的前端代碼,寫的時候是什么樣,最終運行的時候就是什么樣,完全由瀏覽器解釋運行,所以也叫靜態(tài)頁面?,F(xiàn)在的前端開發(fā)框架完全不是這樣,它類似于服務器端的開發(fā)模式,代碼寫好之后,需要編譯、發(fā)布。這就為代碼的組件化創(chuàng)造了條件。如果想完全用html,js這類純原生的代碼實現(xiàn)復用,是非常困難的。
比如js,引入js文件當然可以復用,但粒度比較粗的情況下,冗余量大,并且想在運行的時候各種參數(shù)傳遞,組合,提供動態(tài)生成效果,不是一般的困難,根本提供不了像asp.net,jsp這種有服務器加持,先由服務器解釋,生成,再輸出到瀏覽器端這種便利。
可以這么說,前端代碼只有采用各種打包工具進行發(fā)布這種模式,或者有了react、vue等開發(fā)框架,才使得前后端分離真正落地。
扯遠了。vue組件中,props代表公有屬性,主要對外,可用于接收父組件或頁面?zhèn)鬟f過來的參數(shù);data則代表私有數(shù)據(jù),組件內(nèi)部使用,不推薦外部進行操作或讀取。當然,你硬是要訪問,應該也能訪問得了。
props
1、組件Comp1.vue
<template> <div> {{info}} </div> </template> <script> let _info = "加油!" export default { props: { info: { default: _info } } /* 寫成 props: ['info'] 也可以,但沒有默認值 */ } </script>
2、使用了Comp1的頁面
<template> <div> <div> <Comp1 /> </div> <div> <Comp1 info="要堅持!" /> </div> <div> <Comp1 :info="ourInfo" /> </div> </div> </template> <script> import Comp1 from './Comp1.vue' export default{ components:{ Comp1 }, data(){ return { ourInfo:'別放棄!' } } } </script>
3、運行結(jié)果
data
<template> <div> <div> <Comp1 /> </div> <div> <Comp1 info="要堅持!" /> </div> <div> <Comp1 :info="ourInfo" /> </div> <div> {{ourInfo2}} </div> <div> {{ourInfo3}} </div> </div> </template> <script> import Comp1 from './Comp1.vue' export default{ components:{ Comp1 }, data(){//Vue 在創(chuàng)建新組件實例的過程中調(diào)用此函數(shù) return { ourInfo:'別放棄!', ourInfo2:'盡人事,聽天命!', ourInfo3:'盡人事,聽天命!' } }, mounted(){ this.ourInfo3 = '只管努力去做,但求無愧于心' } } </script>
props由外部傳入,通常通過attribute的方式傳入,到了組件這里,一般不做修改;data則在組件內(nèi)部自行操控。二者都對應數(shù)據(jù),但有所區(qū)別。
子組件中data和props的區(qū)別
子組件中的data數(shù)據(jù),不是通過父組件傳遞的是子組件私有的,是可讀可寫的。
子組件中的所有 props中的數(shù)據(jù),都是通過父組件傳遞給子組件的,是只讀的。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue element upload實現(xiàn)圖片本地預覽
這篇文章主要為大家詳細介紹了vue element upload實現(xiàn)圖片本地預覽,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08vue router+vuex實現(xiàn)首頁登錄驗證判斷邏輯
這篇文章主要介紹了vue router+vuex實現(xiàn)首頁登錄判斷邏輯,用于判斷是否登錄首頁,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05Electron主進程(Main?Process)與渲染進程(Renderer?Process)通信詳解
這篇文章主要介紹了Electron主進程(Main?Process)與渲染進程(Renderer?Process)通信,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03vue2結(jié)合echarts實現(xiàn)一個地圖的效果
這篇文章主要介紹了vue2結(jié)合echarts實現(xiàn)一個地圖的效果,本文通過實例代碼給大家介紹的非常詳細,對大家何用vue和echarts實現(xiàn)一個地圖有一定的幫助,感興趣的朋友一起看看吧2024-03-03