02.Vue api [v-for、v-on、mustache语法、v-once、v-html、v-text、v-pre、 v-cloak]
原创
©著作权归作者所有:来自51CTO博客作者wx6307135cb9367的原创作品,请联系作者获取转载授权,否则将追究法律责任
v-for
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id ="vue">
<ul>
<li v-for=" Item in movie">{{Item}}</li>
</ul>
</div>
<!-- 引入vue.js 文件-->
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
// 这个app的变量名,可省略,但是后期需要调用此实例的方法(or属性)时,需要
el:'#vue',// 用于挂载要管理的元素
data:{ // 定义数据
message:'你好!华为',
movie:['22222','33333','444444','555555']
}
});
</script>
</body>
</html>
v-on
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id ="vue">
<h2>当前技计数:{{counter}}</h2>
<button v-on:click="counter++">+</button>
<button v-on:click="counter--">-</button>
</ul>
</div>
<!-- 引入vue.js 文件-->
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:'#vue',
data:{
counter:0
}
});
</script>
</body>
</html>
把count的计算放到js中后进行计算,我们调用方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id ="vue">
<h2>当前技计数:{{counter}}</h2>
<button v-on:click="add">+</button>
<button v-on:click="sub">-</button>
</ul>
</div>
<!-- 引入vue.js 文件-->
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:'#vue',
data:{
counter:0
},
methods:{
add:function (){
this.counter++;
},
sub(){
this.counter--;
}
}
});
</script>
</body>
</html>
mustache语法
mustache语法中,不仅可以直接写变量,也可直接写简单的表达式
<h1>{{message + firstName}}</h1>
<h1>{{message}} +''+ {{firstName}}</h1>
v-once
加上该标签后,只渲染一次,以后数值再改变, 其html的显示也不跟着发生改变
<h2 v-once>{{meassge}}</h2>
v-html
解析vue实例中的 html元素
![02.Vue api [v-for、v-on、mustache语法、v-once、v-html、v-text、v-pre、 v-cloak]_调用方法](https://s2.51cto.com/images/blog/202209/28093005_6333a39d862e191390.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
v-text
<h2>{{sss}}</h2>
<h2 v-text="sss"></h2>
// 上述两种效果相同
不推荐使用,因为这个 v-text 会相对mustache语法会比较缺少灵活,不能拼接
还有就是在bbb的值会覆盖v-text 的变量值
<h2 v-text="sss">{{bbb}}</h2>
v-pre
<h2 v-pre>{{message}}</h2>
会原封不动的解析出来
![02.Vue api [v-for、v-on、mustache语法、v-once、v-html、v-text、v-pre、 v-cloak]_vue.js_02](https://s2.51cto.com/images/blog/202209/28093005_6333a39dcd23b15297.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
v-cloak
加上这个标签,防止数据没有渲染完,而导致会让用户提前看到未渲染成功的{{sss}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
[v-clocl]{
display: none;
}
</style>
</head>
<body>
<div id ="vue">
<h2 v-cloak>{{sss}}</h2>
</div>
<!-- 引入vue.js 文件-->
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:'#vue',
data:{
counter:' <a href="http://www.baidu.com">百度一下</a>',
sss:'jiangjiang'
},
});
</script>
</body>
</html>