Vue中集成的指令以及其用法
2018-03-21 15:31
411 查看
下面介绍Vue中集成的指令以及用法和作用
1、声明式渲染有两种方法
A、文本插值,用两个花括号:{{内容}}
html如下:<div id="app"> //挂载元el,指定的节点,用id表示
{{ message }} //vue实例对象中data对象中某个属性名
</div>js如下:var app = new Vue({
el: '#app', //挂载到DOM节点上,节点的id=app
data: { //给data对象定义属性message,与html中某个文本对象变量名一致
message: 'Hello Vue!'
}
})输出结果:
B、v-bind(可以简化为:),动态绑定数据,及时对页面的数据进行变更,如V-bind:标签属性="变量名"
html如下:<div id="app-2">
<span v-bind:title="message"> //或者简写:<span :title="message">
鼠标悬停几秒钟查看此处动态绑定的提示信息!
</span>
</div>js如下:var app2 = new Vue({
el: '#app-2',
data: {
message: '页面加载于 ' + new Date().toLocaleString()
}
})显示效果如下:
2、v-bind:class,三种绑定方法---
A、对象型 "{red:isred}"
B、三目型"isred?'red':'blue'"
C、数组型"[{red:'isred'},{blue:'isblue'}]"
A、对象型:<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<style>
.red {
background: red;
}
.blue {
width: 100px;
height: 100px;
background: blue;
}
</style>
</head>
<body>
<div id="box">
<div style="width: 100px;height: 100px;" v-bind:class='{red:isred}'></div>
<!--<div style="width: 100px;height: 100px;" v-bind:class='isred?"red":"blue"'></div>--> <!--三元运算符方式-->
<!--<div style="width: 100px;height: 100px;" v-bind:class='[{red:"isred"}]'></div>-->
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
isred:true
}
})
</script>
</body>
</html>显示结果:
B、三目型:<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<style>
.red {
background: red;
}
.blue {
width: 100px;
height: 100px;
background: blue;
}
</style>
</head>
<body>
<div id="box">
<!--<div style="width: 100px;height: 100px;" v-bind:class='{red:isred}'></div>-->
<div style="width: 100px;height: 100px;" v-bind:class='isred?"red":"blue"'></div> <!--三元运算符方式-->
<!--<div style="width: 100px;height: 100px;" v-bind:class='[{red:"isred"}]'></div>-->
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
isred:false
}
})
</script>
</body>
</html>显示效果:
C、数组型 <!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<style>
.red { background: red;}
.blue { width: 100px; height: 100px; background: blue;}
</style>
</head>
<body>
<div id="box">
<!--<div style="width: 100px;height: 100px;" v-bind:class='{red:isred}'></div>-->
<!--<div style="width: 100px;height: 100px;" v-bind:class='isred?"red":"blue"'></div>--> <!--三元运算符方式-->
<div style="width: 100px
f1bd
;height: 100px;" v-bind:class='[{red:"isred"}]'></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
isred:true
}
})
</script>
</body>
</html>显示效果:
3、v-bind:style,绑定内联样式
A、内联样式,对象型<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id='box'>
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">{{message}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data: {
activeColor: 'red',
fontSize: 30,
message:'hello',
}
})
</script>
</body>
</html>显示效果:
B、直接绑定到一个对象上
<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id='box'>
<div v-bind:style="styleObj">{{message}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data: {
styleObj:{
color:'red',
fontSize:'30px'
},
message:'hello',
}
})
</script>
</body>
</html>显示效果同上
C、数组语法,将多个样式对象应用到同一个元素上<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id='box'>
<div v-bind:style="[style1,style2]">{{message}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data: {
style1:{
color:'red',
fontSize:'30px'
},
style2:{
color:'black'
},
message:'hello',
}
})
</script>
</body>
</html>显示效果:
4、条件 v-if ,显示与隐藏(DOM元素的删除与添加),v-if = "变量名",在data中用true或false来控制显示和隐藏
html如下:<div id="app-3">
<p v-if="seen">现在你看到我了</p>
</div>js如下:var app3 = new Vue({
el: '#app-3',
data: {
seen: true //用true、false来控制能否看见内容
}
})显示结果:
5、条件 v-else-if 必须和v-if连用 ,格式 v-else-if="变量名"
html如下: <div style="width: 100px;height: 100px;background: black;"v-if="show"></div>
<div style="width: 100px;height: 100px;background: aqua;"v-else-if="hide"></div>
<div style="width: 300px;height: 300px;background: blue"v-else=""></div>js如下: var appp = new Vue({ el:"#box", data:{ show:true, hide:false} });
显示效果如下:
6、条件 v-else 必须和v-if连用,不能单独使用,否则报错:模板编译错误,格式 v-else=""
html如下:<div style="width: 100px;height: 100px;background: black;"v-if="show"></div>
<div style="width: 300px;height: 300px;background: blue"v-else=""></div>
js如下: var appp = new Vue({
el:"#box",
data:{
show:true,
hide:false
}
}); 显示效果如下:
7、v-show,显示与隐藏,传递的值为布尔值,默认为false,格式v-show=“变量名”,只是设置display属性,元素还存在DOM中
html如下:
el: "#box",
data(){
return {
show: true
}
}
})
显示效果如下:
v-show和v-if都是隐藏和显示DOM节点,区别是v-show是给DOM节点设置display属性,而v-if则是在DOM中增加/删除节点。
v-if:<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div style="width: 100px;height: 100px;background: black;display: none" v-if="show"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data(){
return {
show: false
}
}
})
</script>
</body>
</html>在浏览器的DOM渲染效果:
v-show:<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div style="width: 100px;height: 100px;background: black;display: none" v-if="show"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data(){
return {
show: false
}
}
})
</script>
</body>
</html>在浏览器的DOM渲染效果:
8、v-for,循环,绑定数组的数据来渲染一个项目列表,格式 v-for="字段名 in(of) 数组json"
html如下:<div id="app-4">
<ol>
<li v-for="todo in todos">
{{ todo.text }}
</li>
</ol>
</div>js如下:
9、v-on 绑定事件(处理用户输入) 函数必须写在methods里面,格式v-on:事件名="函数名",简写@事件名="函数名"
html如下:<div id="app-5">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">逆转消息</button>
</div>js如下:var app5 = new Vue({
el: '#app-5',
data: {
message: 'Hello Vue.js!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
})显示效果:左图是点击按钮签的样式 右图是点击按钮之后的样式
10、v-model,双向绑定数据,格式 v-model="变量名"
html如下:<div id="app-6">
<p>{{ message }}</p>
<input v-model="message">
</div>js如下:var app6 = new Vue({
el: '#app-6',
data: {
message: 'Hello Vue!'
}
})显示效果:左图是页面初始化结果,右图是在页面直接修改输入框的值的结果
11、v-text,解析文本,能读取文本,但不能解析html标签(就是如果变量值是html的形式给出,那么读出的值也包含html标签)
v-text 属性值为字符串文本<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-text="msg"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
msg:" 11111"
},
methods: {
say() {
alert(111);
}
}
})
</script>
</body>
</html>显示结果:11111v-text,属性值为字符串html语句
<p1>11111</p1>12、v-html,能解析html语句,也能读取文本值
[b]v-html,属性值为字符串html语句[/b]<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-html="msg"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
msg:"<p1>11111</p1>"
},
methods: {
say() {
alert(111);
}
}
})
</script>
</body>
</html>显示结果:11111v-html,属性值为字符串文本语句<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-html="msg"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
msg:"11111"
},
methods: {
say() {
alert(111);
}
}
})
</script>
</body>
</html>显示效果:11111v-text和v-html两者都能读取文本,但是v-html能解析字符串html语句13、v-once,进入页面时只能渲染一次,以后不再渲染。如果用到事件中也只执行一次(@click.once="show")<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-once>{{msg}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data:{
msg:"qwdqwdqwd"
}
})
</script>
</body>
</html>显示效果:qwdqwdqwd事件也只响应一次<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div @click.once="change">{{msg}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data:{
msg:"false",
flag:1
},
methods:{
change:function(){
if(this.flag == 1){
this.flag = 0;
this.msg = "true";
}else{
this.flag = 1;
this.msg = "false";
}
}
}
})
</script>
</body>
</html>页面初始化效果:
点击false,页面效果
当再次点击的时候,页面没有任何反应
14、v-pre,把标签内的元素原样输出<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-pre>欢迎---{{msg}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data:{
msg:"111111"
}
})
</script>
</body>
</html>显示效果:
15、v-cloak,防止闪烁<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-cloak=''>欢迎---{{msg}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data:{
msg:"111111"
}
})
</script>
</body>
</html>显示效果:
1、声明式渲染有两种方法
A、文本插值,用两个花括号:{{内容}}
html如下:<div id="app"> //挂载元el,指定的节点,用id表示
{{ message }} //vue实例对象中data对象中某个属性名
</div>js如下:var app = new Vue({
el: '#app', //挂载到DOM节点上,节点的id=app
data: { //给data对象定义属性message,与html中某个文本对象变量名一致
message: 'Hello Vue!'
}
})输出结果:
B、v-bind(可以简化为:),动态绑定数据,及时对页面的数据进行变更,如V-bind:标签属性="变量名"
html如下:<div id="app-2">
<span v-bind:title="message"> //或者简写:<span :title="message">
鼠标悬停几秒钟查看此处动态绑定的提示信息!
</span>
</div>js如下:var app2 = new Vue({
el: '#app-2',
data: {
message: '页面加载于 ' + new Date().toLocaleString()
}
})显示效果如下:
2、v-bind:class,三种绑定方法---
A、对象型 "{red:isred}"
B、三目型"isred?'red':'blue'"
C、数组型"[{red:'isred'},{blue:'isblue'}]"
A、对象型:<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<style>
.red {
background: red;
}
.blue {
width: 100px;
height: 100px;
background: blue;
}
</style>
</head>
<body>
<div id="box">
<div style="width: 100px;height: 100px;" v-bind:class='{red:isred}'></div>
<!--<div style="width: 100px;height: 100px;" v-bind:class='isred?"red":"blue"'></div>--> <!--三元运算符方式-->
<!--<div style="width: 100px;height: 100px;" v-bind:class='[{red:"isred"}]'></div>-->
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
isred:true
}
})
</script>
</body>
</html>显示结果:
B、三目型:<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<style>
.red {
background: red;
}
.blue {
width: 100px;
height: 100px;
background: blue;
}
</style>
</head>
<body>
<div id="box">
<!--<div style="width: 100px;height: 100px;" v-bind:class='{red:isred}'></div>-->
<div style="width: 100px;height: 100px;" v-bind:class='isred?"red":"blue"'></div> <!--三元运算符方式-->
<!--<div style="width: 100px;height: 100px;" v-bind:class='[{red:"isred"}]'></div>-->
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
isred:false
}
})
</script>
</body>
</html>显示效果:
C、数组型 <!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<style>
.red { background: red;}
.blue { width: 100px; height: 100px; background: blue;}
</style>
</head>
<body>
<div id="box">
<!--<div style="width: 100px;height: 100px;" v-bind:class='{red:isred}'></div>-->
<!--<div style="width: 100px;height: 100px;" v-bind:class='isred?"red":"blue"'></div>--> <!--三元运算符方式-->
<div style="width: 100px
f1bd
;height: 100px;" v-bind:class='[{red:"isred"}]'></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
isred:true
}
})
</script>
</body>
</html>显示效果:
3、v-bind:style,绑定内联样式
A、内联样式,对象型<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id='box'>
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">{{message}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data: {
activeColor: 'red',
fontSize: 30,
message:'hello',
}
})
</script>
</body>
</html>显示效果:
B、直接绑定到一个对象上
<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id='box'>
<div v-bind:style="styleObj">{{message}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data: {
styleObj:{
color:'red',
fontSize:'30px'
},
message:'hello',
}
})
</script>
</body>
</html>显示效果同上
C、数组语法,将多个样式对象应用到同一个元素上<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id='box'>
<div v-bind:style="[style1,style2]">{{message}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data: {
style1:{
color:'red',
fontSize:'30px'
},
style2:{
color:'black'
},
message:'hello',
}
})
</script>
</body>
</html>显示效果:
4、条件 v-if ,显示与隐藏(DOM元素的删除与添加),v-if = "变量名",在data中用true或false来控制显示和隐藏
html如下:<div id="app-3">
<p v-if="seen">现在你看到我了</p>
</div>js如下:var app3 = new Vue({
el: '#app-3',
data: {
seen: true //用true、false来控制能否看见内容
}
})显示结果:
5、条件 v-else-if 必须和v-if连用 ,格式 v-else-if="变量名"
html如下: <div style="width: 100px;height: 100px;background: black;"v-if="show"></div>
<div style="width: 100px;height: 100px;background: aqua;"v-else-if="hide"></div>
<div style="width: 300px;height: 300px;background: blue"v-else=""></div>js如下: var appp = new Vue({ el:"#box", data:{ show:true, hide:false} });
显示效果如下:
6、条件 v-else 必须和v-if连用,不能单独使用,否则报错:模板编译错误,格式 v-else=""
html如下:<div style="width: 100px;height: 100px;background: black;"v-if="show"></div>
<div style="width: 300px;height: 300px;background: blue"v-else=""></div>
js如下: var appp = new Vue({
el:"#box",
data:{
show:true,
hide:false
}
}); 显示效果如下:
7、v-show,显示与隐藏,传递的值为布尔值,默认为false,格式v-show=“变量名”,只是设置display属性,元素还存在DOM中
html如下:
<div id="box"> <div style="width: 100px;height: 100px;background: black;display: none" v-show="show"></div> </div>js如下: new Vue({
el: "#box",
data(){
return {
show: true
}
}
})
显示效果如下:
v-show和v-if都是隐藏和显示DOM节点,区别是v-show是给DOM节点设置display属性,而v-if则是在DOM中增加/删除节点。
v-if:<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div style="width: 100px;height: 100px;background: black;display: none" v-if="show"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data(){
return {
show: false
}
}
})
</script>
</body>
</html>在浏览器的DOM渲染效果:
v-show:<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div style="width: 100px;height: 100px;background: black;display: none" v-if="show"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data(){
return {
show: false
}
}
})
</script>
</body>
</html>在浏览器的DOM渲染效果:
8、v-for,循环,绑定数组的数据来渲染一个项目列表,格式 v-for="字段名 in(of) 数组json"
html如下:<div id="app-4">
<ol>
<li v-for="todo in todos">
{{ todo.text }}
</li>
</ol>
</div>js如下:
var app4 = new Vue({ el: '#app-4', data: { todos: [ { text: '学习 JavaScript' }, { text: '学习 Vue' }, { text: '整个牛项目' } ] } })显示效果如下:
9、v-on 绑定事件(处理用户输入) 函数必须写在methods里面,格式v-on:事件名="函数名",简写@事件名="函数名"
html如下:<div id="app-5">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">逆转消息</button>
</div>js如下:var app5 = new Vue({
el: '#app-5',
data: {
message: 'Hello Vue.js!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
})显示效果:左图是点击按钮签的样式 右图是点击按钮之后的样式
10、v-model,双向绑定数据,格式 v-model="变量名"
html如下:<div id="app-6">
<p>{{ message }}</p>
<input v-model="message">
</div>js如下:var app6 = new Vue({
el: '#app-6',
data: {
message: 'Hello Vue!'
}
})显示效果:左图是页面初始化结果,右图是在页面直接修改输入框的值的结果
11、v-text,解析文本,能读取文本,但不能解析html标签(就是如果变量值是html的形式给出,那么读出的值也包含html标签)
v-text 属性值为字符串文本<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-text="msg"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
msg:" 11111"
},
methods: {
say() {
alert(111);
}
}
})
</script>
</body>
</html>显示结果:11111v-text,属性值为字符串html语句
<!DOCTYPE html> <html> <head> <title>Vue</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> </head> <body> <div id="box"> <div v-text="msg"></div> </div> <script type="text/javascript"> new Vue({ el: "#box", data:{ msg:"<p1>11111</p1>" }, methods: { say() { alert(111); } } }) </script> </body> </html>显示结果:
<p1>11111</p1>12、v-html,能解析html语句,也能读取文本值
[b]v-html,属性值为字符串html语句[/b]<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-html="msg"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
msg:"<p1>11111</p1>"
},
methods: {
say() {
alert(111);
}
}
})
</script>
</body>
</html>显示结果:11111v-html,属性值为字符串文本语句<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-html="msg"></div>
</div>
<script type="text/javascript">
new Vue({
el: "#box",
data:{
msg:"11111"
},
methods: {
say() {
alert(111);
}
}
})
</script>
</body>
</html>显示效果:11111v-text和v-html两者都能读取文本,但是v-html能解析字符串html语句13、v-once,进入页面时只能渲染一次,以后不再渲染。如果用到事件中也只执行一次(@click.once="show")<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-once>{{msg}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data:{
msg:"qwdqwdqwd"
}
})
</script>
</body>
</html>显示效果:qwdqwdqwd事件也只响应一次<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div @click.once="change">{{msg}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data:{
msg:"false",
flag:1
},
methods:{
change:function(){
if(this.flag == 1){
this.flag = 0;
this.msg = "true";
}else{
this.flag = 1;
this.msg = "false";
}
}
}
})
</script>
</body>
</html>页面初始化效果:
点击false,页面效果
当再次点击的时候,页面没有任何反应
14、v-pre,把标签内的元素原样输出<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-pre>欢迎---{{msg}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data:{
msg:"111111"
}
})
</script>
</body>
</html>显示效果:
15、v-cloak,防止闪烁<!DOCTYPE html>
<html>
<head>
<title>Vue</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
</head>
<body>
<div id="box">
<div v-cloak=''>欢迎---{{msg}}</div>
</div>
<script type="text/javascript">
new Vue({
el:"#box",
data:{
msg:"111111"
}
})
</script>
</body>
</html>显示效果:
相关文章推荐
- vue指令以及dom操作
- springmvc webservice的2种用法,xstream以及axis2 集成spring发布服务
- vue中watch的用法总结以及报错处理Error in callback for watcher "checkList"
- vue指令以及dom操作详解
- ARM中指令的学习和分析(用法、格式以及英文全称)
- angularJS指令以及用法
- vue的基本用法与常见指令
- vue.js(2.0)常用指令总结以及一些指令的坑!
- 在使用vue脚手架之前你必须掌握的:vue的模版以及路由用法
- Vue.js介绍以及vue的常见指令
- vue 指令的用法
- vue.js指令v-for使用以及下标索引的获取
- Vue2.0中 v-for指令中的key用法
- SEO常用指令的用法技巧以及出现的问题
- Drools的另类用法--模板使用,以及与Spring集成
- Linux中关于find指令的用法以及whereis指令
- Vue常用指令V-model用法
- Rails的一些設定、Bundler,以及Command Line指令的用法
- [js高手之路] vue系列教程 - vue的基本用法与常见指令(1)
- vue.js指令v-for使用以及下标索引的获取