国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue.js render方法使用詳解

2024-05-06 15:18:55
字體:
來源:轉載
供稿:網友

前注:

版本限制:

Vue.js 2.0+
1.0無法使用

沒耐心,只關心有什么用的,想知道其大概是獲取什么東西后生成的,可以直接看結尾的總結

非使用render方法的情況

完整代碼:

<!DOCTYPE html><html><head><title>Vue的render方法說明</title><script src="https://unpkg.com/vue@2.1.10/dist/vue.js"></script></head><body><div id="app"><child :level="1">Hello world!</child></div><script type="text/x-template" id="template"><div><h1 v-if="level === 1"><slot></slot></h1><h2 v-if="level === 2"><slot></slot></h2><h3 v-if="level === 3"><slot></slot></h3><h4 v-if="level === 4"><slot></slot></h4><h5 v-if="level === 5"><slot></slot></h5><h6 v-if="level === 6"><slot></slot></h6></div></script><script type="text/javascript">Vue.component('child', {template: '#template',props: {level: {type: Number,required: true}}})new Vue({el: "#app"})</script></body></html>

代碼說明:

最下面的new Vue方法很明顯,是new了一個Vue的實例,掛載點是”#app”這個dom Vue.component這部分代碼,第一個參數表示注冊了一個Vue的組件,標簽名是child(即 <child> 標簽會被替換); 第二個參數中,template屬性表示取找id=“template”的標簽(另注,這個標簽是script,或者是div,或者是template,或者是其他,沒有影響),然后將這個標簽作為組件的模板 props表示傳遞給這個組件的變量,通過標簽中的v-bind:level這種形式傳遞變量level的值等于1。在這里的寫法是限制變量類型為number,并且強制需要 slot表示內容分發,具體來說,就是把組件替換的源html標簽里的內容(如 <child> 標簽里面的內容,不包含 <child> 標簽本身,這里是Hello world!),發在 <slot> 標簽所在的位置(即放在 <h1>``````<h2> 這樣的標簽內)。 如果還不理解,可以運行該段代碼查看結果,或者去看vue的官方文檔說明 總的來說,順序如下:注冊一個組件,這個組件有模板,這個模板里有一個變量,變量的值通過父組件來傳遞,然后根據變量的值,通過v-if命令顯示對應的html標簽內容,然后在父組件里使用這個組件,讓子組件顯示需要顯示的內容。

這樣的代碼有一個缺陷,就是需要寫大量重復的代碼,如從 <h1> ~ <h6> 共6種情況。如果這樣的模板比較復雜,比如 <hx> 標簽里還有很多其他內容,顯然會讓人十分困擾,既不美觀也不好用。

使用render方法的情況

解決辦法就是render方法,全部代碼如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 武胜县| 资源县| 长顺县| 宁安市| 双流县| 光泽县| 吴桥县| 大竹县| 什邡市| 罗甸县| 定边县| 察隅县| 五峰| 巴林左旗| 肥东县| 依安县| 玉环县| 南宫市| 武冈市| 康保县| 商南县| 望都县| 蕲春县| 潮安县| 肃北| 彝良县| 平谷区| 衢州市| 云南省| 从江县| 富民县| 辉县市| 苍梧县| 揭东县| 洪洞县| 贵定县| 攀枝花市| 奇台县| 土默特右旗| 嘉黎县| 千阳县|