<script src="../vue.js"></script>
在官方网站下载源代码,并导入scritp
<div id="app">{{message}}</div>
<script> //const 常量 //let 变量 const app = new Vue({ //用于挂载要管理的元素 el: '#app', data: { message: "Hello Vue" } }); </script>
展示一个更加复杂的数据:数据列表
比如现在从服务器请求过来一个列表
希望展示到HTML中
<div id="app">
<ul><li v-for="item in movies">{{item}}</li></ul>
</div>
<script> const app = new Vue({ el: '#app', data: { message: "Hello Vue", movies:["美国队长2","复仇者联盟4","钢铁侠1","蜘蛛侠3","雷神"] } }) </script>
此数据还是响应式的,也就是说当数组中的数据发生变化时,界面会自动改变。
控制台如果想加入新的元素:
实现一个计数器:
点击+,计数器+1,
点击-,计数器-1
这里需要引入这个新的指令和属性:
<div id="app">
<h2>当前计数:{{counter}}</h2>
<button v-on:click="add">+</button>
<button v-on:click="sub">-</button>
</div>
<script> const app = new Vue({ el: "#app", data: { counter: 0 }, methods: { add: function () { this.counter++; }, sub: function () { this.counter--; } }, }) </script>
又名双大括号语法
基本用法:
<div id="app">
<h4>{{firstname +" "+lastname}}</h4>
<h4>{{firstname}} {{lastname}}</h4>
<h4>你好,{{lastname}}</h4>
</div>
<script> const app =new Vue({ el:"#app", data:{ firstname:"法外狂徒", lastname:"张三" }, }) </script>
{{…}} 标签的内容将会被替代为对应组件实例中 message 属性的值,如果 message 属性的值发生了改变,{{…}} 标签内容也会更新。
如果不想改变标签的内容,可以通过使用 v-once 指令执行一次性地插值,当数据改变时,插值处的内容不会更新。
<h4>你好,{{lastname}}</h4>
<h4 v-once>你好,{{lastname}}</h4>
某些情况下,从服务器请求到的数据本身是一个HTML代码,如果直接通过{{…}}来输出,会将HTML代码一起输出,但是这违背了使用数据的初衷。
v-html可以将带有标签形式的数据,解析成对应的形式呈现出来。
<h2>{{url}}</h2>
<h2 v-html="url"></h2>
<script> const app =new Vue({ el:"#app", data:{ firstname:"法外狂徒", lastname:"张三", url:"<a href='www.baidu.com'>百度一下</a>" }, }) </script>
用于跳过这个元素和它子元素的编译过程,用于显示原本的Mustache语法
<h2>{{firstname}}</h2>
<h2 v-pre>{{firstname}}</h2>
在某些情况下,浏览器会直接显示出未编译的Mustache标签
<style> [v-cloak]{ display: none; } </style>
<div id="app">
<h2 v-cloak>{{firstname}}</h2>
</div>
<script> setTimeout(function(){ const app =new Vue({ el:"#app", data:{ firstname:"法外狂徒", lastname:"张三", url:"<a href='www.baidu.com'>百度一下</a>" } })},1000) </script>
页面一开始暂时不显示任何内容,之后才会显示出来
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/xiaotangyu7dong/article/details/119883435
内容来源于网络,如有侵权,请联系作者删除!