国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

詳解template標簽用法(含vue中的用法總結)

瀏覽:96日期:2022-10-11 15:28:59
一、html5中的template標簽

html中的template標簽中的內容在頁面中不會顯示。但是在后臺查看頁面DOM結構存在template標簽。這是因為template標簽天生不可見,它設置了display:none;屬性。

<!--當前頁面只顯示'我是自定義表現(xiàn)abc'這個內容,不顯示'我是template',這是因為template標簽天生不可見--><template><div>我是template</div></template><abc>我是自定義表現(xiàn)abc</abc>二、template標簽操作的屬性和方法 content屬性:在js中template標簽對應的dom對象存在content屬性,對應的屬性值是一個dom節(jié)點,節(jié)點的nodeName是#document-fragment。通過該屬性可以獲取template標簽中的內容,template對象.content可以調用getElementById、querySelector、querySelectorAll方法來獲取里面的子節(jié)點。 innerHTML:可以獲取template標簽中的html。

<template id='tem'> <div id='div1'>我是template</div> <div>我是template</div></template><script> let o = document.getElementById('tem'); console.log(o.content.nodeName);//#document-fragment console.log(o.content.querySelectorAll('div'));//NodeList(2) [div#div1, div]。得到一個類數(shù)組 console.log(o.content.getElementById('div1'));//<div id='div1'>我是template</div> console.log(o.innerHTML);//’<div id='div1'>我是template</div><div>我是template</div>’</script>三、vue中的template 1、template標簽在vue實例綁定的元素內部

它是可以顯示template標簽中的內容,但是查看后臺的dom結構不存在template標簽。如果template標簽不放在vue實例綁定的元素內部默認里面的內容不能顯示在頁面上,但是查看后臺dom結構存在template標簽。

<div id='app'> <!--此處的template標簽中的內容顯示并且在dom中不存在template標簽--> <template> <div>我是template</div> <div>我是template</div> </template></div><!--此處的template標簽中的內容在頁面中不顯示,但是在dom結構存在該標簽及內部結構--><template id='tem'> <div id='div1'>我是template</div> <div>我是template</div></template><script src='http://www.intensediesel.com/bcjs/node_modules/vue/dist/vue.js'></script><script> let vm = new Vue({ el: '#app', });</script>

注意: vue實例綁定的元素內部的template標簽不支持v-show指令,即v-show='false'對template標簽來說不起作用。但是此時的template標簽支持v-if、v-else-if、v-else、v-for這些指令。

<div id='app'> <template v-if='true'> <!--此時template標簽中的內容顯示在頁面上,但是看dom結構沒有template標簽--> <div>我是template</div> <div>我是template</div> </template> <div v-if='true'> <!--此時頁面上顯示div標簽中的內容,并且看dom結構存在最外面的div標簽--> <div>我是template</div> <div>我是template</div> </div> <!--此處會輸出6個‘我是template’并且dom結構中不存在template標簽--> <template v-for='a in 3'> <div>我是template</div> <div>我是template</div> </template></div><script src='http://www.intensediesel.com/bcjs/node_modules/vue/dist/vue.js'></script><script> let vm = new Vue({ el: '#app', });</script>2、vue實例中的template屬性

將實例中template屬性值進行編譯,并將編譯后的dom替換掉vue實例綁定的元素,如果該vue實例綁定的元素中存在內容,這些內容會直接被覆蓋。特點:

1)如果vue實例中有template屬性,會將該屬性值進行編譯,將編譯后的虛擬dom直接替換掉vue實例綁定的元素(即el綁定的那個元素);2)template屬性中的dom結構只能有一個根元素,如果有多個根元素需要使用v-if、v-else、v-else-if設置成只顯示其中一個根元素;3)在該屬性對應的屬性值中可以使用vue實例data、methods中定義的數(shù)據(jù)。

<!--此處頁面顯示hello--><div id='app'></div><!--此處template標簽必須在vue綁定的元素外面定義,并且在頁面中不顯示下面的template標簽中的內容--><template id='first'> <div v-if='flag'>{{msg}}<div> <div v-else>111<div></template><script src='http://www.intensediesel.com/bcjs/node_modules/vue/dist/vue.js'></script><script> let vm = new Vue({ el:'#app', data:{ msg:'hello', flag:true }, template:'#first'//通過該屬性可以將自定義的template屬性中的內容全部替換app的內容,并且會覆蓋里面原有的內容,并且在查看dom結構時沒有template標簽 });</script>

上面的例子中html中的template標簽可以變成自定的標簽,如下。但是下面這種方式也可以將<abc></abc>標簽中的內容替換掉app元素,但是<abc></abc>標簽中的內容也會顯示在頁面上。所以此處利用template標簽來定義vue實例中需要設置的template屬性。

<abc id='first'> <div v-if='flag'>{{msg}}<div> <div v-else>111<div></abc>

上面的實例還可以寫成下面的形式

<!--此處頁面顯示hello--><div id='app'></div><script src='http://www.intensediesel.com/bcjs/node_modules/vue/dist/vue.js'></script><script> let vm = new Vue({ el:'#app', data:{ msg:'hello', flag:true }, template:'<div v-if=’flag’>{{msg}}</div><div v-else>123</div>'//模板中只能有一個根元素,如果有多個需要使用v-if、v-else、v-else-if來選擇顯示哪一個 });</script>

到此這篇關于詳解template標簽用法(含vue中的用法總結)的文章就介紹到這了,更多相關template標簽用法內容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Vue
相關文章:
主站蜘蛛池模板: 思茅市| 华容县| 嘉禾县| 平遥县| 神木县| 贵州省| 南宫市| 赫章县| 赤水市| 陆良县| 井陉县| 上栗县| 泾阳县| 响水县| 葫芦岛市| 阳朔县| 南雄市| 静海县| 瓮安县| 济阳县| 北海市| 集安市| 谷城县| 旬邑县| 定南县| 广安市| 北海市| 会理县| 松原市| 武邑县| 石首市| 嘉黎县| 化隆| 汾西县| 文成县| 屯留县| 苏州市| 盐池县| 敖汉旗| 华宁县| 虹口区|