成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

函數(shù)化組件

MingjunYang / 1772人閱讀

摘要:用函數(shù)化組件展示一個根據(jù)數(shù)據(jù)智能選擇不同組件的場景函數(shù)化組件根據(jù)數(shù)據(jù)選擇組件函數(shù)化組件根據(jù)數(shù)據(jù)選擇組件函數(shù)化組件主要適用于以下兩個場景程序化地在多個組件中選擇一個。

函數(shù)化組件

Vue提供了一個functional的布爾值選項(xiàng),設(shè)置為true可以使組件無狀態(tài)和無實(shí)例,也就是沒有datathis上下文。這樣用render函數(shù)返回虛擬節(jié)點(diǎn)可以更容易渲染,因?yàn)楹瘮?shù)化組件只是一個函數(shù),渲染開銷要小很多。

使用函數(shù)化組件時,Render函數(shù)提供了第二個參數(shù)context來提供臨時上下文。組件需要的data、propslots、children、parent都是通過這個上下文來傳遞。比如this.level要改寫為context.props.levelthis.$slots.default改變?yōu)?b>context.children。

用函數(shù)化組件展示一個根據(jù)數(shù)據(jù)智能選擇不同組件的場景:

See the Pen Vue-函數(shù)化組件-根據(jù)數(shù)據(jù)選擇組件 by whjin (@whjin) on CodePen.


JSX寫法:

See the Pen Vue-JSX by whjin (@whjin) on CodePen.


實(shí)戰(zhàn):留言列表

發(fā)布一條留言,需要的數(shù)據(jù)有昵稱和留言內(nèi)容,發(fā)布操作應(yīng)該在根實(shí)例app內(nèi)完成。留言列表的數(shù)據(jù)也是從app獲取。

數(shù)組list存儲了所有的留言內(nèi)容,通過函數(shù)handleSendlist添加一項(xiàng)留言數(shù)據(jù),添加成后把texrarea文本框置空。

Render函數(shù)內(nèi)的節(jié)點(diǎn)使用v-model:動態(tài)綁定value,并且監(jiān)聽input事件,把輸入的內(nèi)容通過$emit("input")派發(fā)給父組件。

列表數(shù)據(jù)list為空時,渲染一個“列表為空”的信息提示節(jié)點(diǎn);不為空時,每個list-item贏包含昵稱、留言內(nèi)容和回復(fù)按鈕3個子節(jié)點(diǎn)。

this.list.forEach相當(dāng)于template里的v-for指令,遍歷出每條留言。句柄handleReply直接向父組件派發(fā)一個事件reply,父組件(app)接收后,將當(dāng)前list-item的昵稱提取,并設(shè)置到v-textarea內(nèi)。

See the Pen Vue-留言列表 by whjin (@whjin) on CodePen.


閱讀需要支付1元查看
<