templateラベルの使い方のまとめ(vueの使い方のまとめを含む)について
25337 ワード
文書ディレクトリ一、html 5のtemplateラベル 二、templateラベル操作の属性と方法 三、vueのtemplate 1、templateラベルvueインスタンスにバインドされた要素の内部 2、vueインスタンスのtemplateプロパティ 一、html 5のtemplateラベル
htmlの
二、templateラベル操作の属性と方法
三、vueのtemplate
1、templateラベルvueインスタンスにバインドされた要素の内部
これはtemplateラベルの内容を表示できますが、バックグラウンドを表示するdom構造にはtemplateラベルはありません.templateラベルがvueインスタンスにバインドされた要素の内部に置かれていない場合、デフォルトの内容はページに表示されませんが、バックグラウンドdom構造にtemplateラベルがあることを確認します.
注意:vueインスタンスにバインドされた要素内部のtemplateラベルは、v-showコマンドをサポートしていません.すなわち、v-show=「false」はtemplateラベルには機能しません.ただし、このときのtemplateラベルは、v-if、v-else-if、v-else、v-forなどのコマンドをサポートします.
2、vueインスタンスのtemplate属性
インスタンスのtemplateプロパティ値をコンパイルし、コンパイルされたdomをvueインスタンスにバインドされた要素に置き換えます.vueインスタンスにバインドされた要素にコンテンツが存在する場合、これらの内容は直接上書きされます.特徴:1)vueインスタンスにtemplate属性がある場合、その属性値がコンパイルされ、コンパイルされた仮想domがvueインスタンスにバインドされた要素(すなわちelバインドされた要素)を直接置き換える. 2)templateプロパティのdom構造には1つのルート要素しかありません.複数のルート要素がある場合は、v-if、v-else、v-else-ifを使用して1つのルート要素のみを表示するように設定する必要があります. )この属性に対応する属性値には、vueインスタンスdata、methodsで定義されたデータを使用することができる.
上記の例ではhtmlのtemplateタグは、以下のようにカスタマイズされたタグにすることができる.しかし、以下のように
上記の例は以下のように書くこともできます.
htmlの
template
ラベルの内容はページに表示されません.しかし、バックグラウンドビューページDOM構造にはtemplate
のラベルがある.これはtemplateラベルが生まれつき見えないため、display:none;
プロパティが設定されています.
<template><div> templatediv>template>
<abc> abcabc>
二、templateラベル操作の属性と方法
content
プロパティ:jsのtemplateラベルに対応するdomオブジェクトにはcontentプロパティがあり、対応するプロパティ値はdomノードであり、ノードのnodeNameはdocument-fragmentである.この属性によってtemplateタグの内容を取得することができ、template .content
はgetElementById、querySelector、querySelectorAllメソッドを呼び出して中のサブノードを取得することができる.innerHTML
:templateラベルのhtmlを取得できます.<template id="tem">
<div id="div1"> templatediv>
<div> templatediv>
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]。
console.log(o.content.getElementById("div1"));// template
console.log(o.innerHTML);//' template template'
script>
三、vueのtemplate
1、templateラベルvueインスタンスにバインドされた要素の内部
これはtemplateラベルの内容を表示できますが、バックグラウンドを表示するdom構造にはtemplateラベルはありません.templateラベルがvueインスタンスにバインドされた要素の内部に置かれていない場合、デフォルトの内容はページに表示されませんが、バックグラウンドdom構造にtemplateラベルがあることを確認します.
<div id="app">
<template>
<div> templatediv>
<div> templatediv>
template>
div>
<template id="tem">
<div id="div1"> templatediv>
<div> templatediv>
template>
<script src="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">
<div> templatediv>
<div> templatediv>
template>
<div v-if="true">
<div> templatediv>
<div> templatediv>
div>
<template v-for="a in 3">
<div> templatediv>
<div> templatediv>
template>
div>
<script src="node_modules/vue/dist/vue.js">script>
<script>
let vm = new Vue({
el: "#app",
});
script>
2、vueインスタンスのtemplate属性
インスタンスのtemplateプロパティ値をコンパイルし、コンパイルされたdomをvueインスタンスにバインドされた要素に置き換えます.vueインスタンスにバインドされた要素にコンテンツが存在する場合、これらの内容は直接上書きされます.特徴:
<div id="app">div>
<template id="first">
<div v-if="flag">{{msg}}<div>
<div v-else>111<div>
template>
<script src="./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タグは、以下のようにカスタマイズされたタグにすることができる.しかし、以下のように
ラベルの内容をapp要素に置き換えることもできますが、
ラベルの内容もページに表示されます.したがって、ここではtemplateラベルを使用して、vueインスタンスで設定する必要があるtemplateプロパティを定義します.<abc id="first">
<div v-if="flag">{{msg}}<div>
<div v-else>111<div>
abc>
上記の例は以下のように書くこともできます.
<div id="app">div>
<script src="./node_modules/vue/dist/vue.js">script>
<script>
let vm = new Vue({
el:"#app",
data:{
msg:"hello",
flag:true
},
template:"{{msg}}123"// , v-if、v-else、v-else-if
});
script>