Vuejs学习笔记(一)-6.插值操作
一、插值操作--mustache语法
vue的插值操作,简单说,就是将Vue实例中的变量或则对象的值放到HTML中去显示。那么就需要在HTML中使用插入的变量名。目前的使用方法叫做mustache语法,即 {{ message }}
可以直接在html中插入变量。也可以对变量进行一些操作,即以表达式的形式展示。
1 <!-- 2 @author:invoker 3 @project:project_lianxi 4 @file: 01-mustache语法.html 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/6/30 20:15 8 @version: html5 9 --> 10 11 <!DOCTYPE html> 12 <html lang="en"> 13 <head> 14 <meta charset="UTF-8"> 15 <title>01-mustache语法</title> 16 </head> 17 <body> 18 <div id="app"> 19 <h2>{{ message }}</h2> 20 <!-- 直接调用变量--> 21 <h2>{{message + ' ' + message2}}</h2> 22 <!-- 在{{}}中使用表达式--> 23 <h2>{{message}}{{message2}}</h2> 24 <h2>{{counter * 2}}</h2> 25 </div> 26 27 <script src="../js/vue.js"></script> 28 <script> 29 30 31 const app = new Vue({ 32 el: '#app', 33 data: { 34 message: 'hello', 35 message2: 'world', 36 counter: 10 37 } 38 }) 39 </script> 40 </body> 41 </html>
二、v-once 指令,只准变量或者对象显示一次
1 <!-- 2 @author:invoker 3 @project:project_lianxi 4 @file: 02-v-once的使用.html 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/6/30 20:26 8 @version: html5 9 --> 10 11 <!DOCTYPE html> 12 <html lang="en"> 13 <head> 14 <meta charset="UTF-8"> 15 <title>02-v-once的使用</title> 16 </head> 17 <body> 18 <div id="app"> 19 <h2>{{ message }}</h2> 20 <!-- v-once当前标签里插入的变量或则对象只能使用一次,即变量或则对象变动后,不会跟着变更--> 21 <h2 v-once>{{ message }}</h2> 22 </div> 23 24 <script src="../js/vue.js"></script> 25 <script> 26 27 const app = new Vue({ 28 el: '#app', 29 data: { 30 message: 'hello' 31 }, 32 }) 33 </script> 34 </body> 35 </html>
运行Html,打开控制台,变更message值,第一个标签未做v-once指令的标签会响应式同步更新,而打了v-once指令的标签不会有任何变动。
三、v-html的使用
服务器返回的url是以标签形式展示的,如 url:"<a href='www.baidu.com'>百度地址</a>",页面希望现实成html的标签,则要使用v-html
1 <!-- 2 @author:invoker 3 @project:project_lianxi 4 @file: 03-v-html的使用.html 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/6/30 20:42 8 @version: html5 9 --> 10 11 <!DOCTYPE html> 12 <html lang="en"> 13 <head> 14 <meta charset="UTF-8"> 15 <title>03-v-html的使用</title> 16 </head> 17 <body> 18 <div id="app"> 19 <h2>{{ message }}</h2> 20 <h2>{{url}}</h2> 21 <h2 v-html="url"></h2> 22 </div> 23 24 <script src="../js/vue.js"></script> 25 <script> 26 27 const app = new Vue({ 28 el: '#app', 29 data: { 30 message: 'hello', 31 url:'<a href="www.baidu.com">百度</a>' 32 }, 33 }) 34 </script> 35 </body> 36 </html>
四、v-text的使用
1.不使用mustache语法也可以通过v-text显示Vue实例中的变量
2.但是使用起来不如mustache语法灵活,比如以下的代码会用message的值覆盖掉vuejs,暂时不能像message一样拼接使用
1 <!-- 2 @author:invoker 3 @project:project_lianxi 4 @file: 04-v-text的使用.html 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/6/30 20:47 8 @version: html5 9 --> 10 11 <!DOCTYPE html> 12 <html lang="en"> 13 <head> 14 <meta charset="UTF-8"> 15 <title>04-v-text的使用</title> 16 </head> 17 <body> 18 <div id="app"> 19 <h2>{{ message }}</h2> 20 <h2>{{ message }},vuejs</h2> 21 <!-- 不使用mustache语法也可以通过v-text显示Vue实例中的变量--> 22 <h2 v-text="message"></h2> 23 <!-- 但是使用起来不如mustache语法灵活,比如以下的代码会用message的值覆盖掉vuejs,暂时不能像message一样拼接使用--> 24 <h2 v-text="message">vuejs</h2> 25 </div> 26 27 28 <script src="../js/vue.js"></script> 29 <script> 30 31 const app = new Vue({ 32 el: '#app', 33 data: { 34 message: 'hello', 35 }, 36 }) 37 </script> 38 </body> 39 </html>
五、v-pre的使用
作用:使用v-pre命令,会让Vue实例不解析{{}}内的变量,并将{{}}和变量直接显示在前端
1 <!-- 2 @author:invoker 3 @project:project_lianxi 4 @file: 05-v-pre的使用.html 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/6/30 20:54 8 @version: html5 9 --> 10 11 <!DOCTYPE html> 12 <html lang="en"> 13 <head> 14 <meta charset="UTF-8"> 15 <title>05-v-pre的使用</title> 16 </head> 17 <body> 18 <div id="app"> 19 <h2>{{ message }}</h2> 20 <!-- 使用v-pre命令,会让Vue实例不解析{{}}内的变量,并将{{}}和变量直接显示在前端--> 21 <h2 v-pre>{{ message }}</h2> 22 </div> 23 24 25 <script src="../js/vue.js"></script> 26 <script> 27 28 29 const app = new Vue({ 30 el: '#app', 31 data: { 32 message: 'hello' 33 }, 34 35 }) 36 </script> 37 </body> 38 </html>
六、v-cloak的使用
我感觉这个叫魔法斗篷
代码如下:
1 <!-- 2 @author:invoker 3 @project:project_lianxi 4 @file: 06-v-cloak的使用.html 5 @contact:invoker2021@126.com 6 @descript: 7 @Date:2021/6/30 20:58 8 @version: html5 9 --> 10 11 <!DOCTYPE html> 12 <html lang="en"> 13 <head> 14 <meta charset="UTF-8"> 15 <title>06-v-cloak的使用</title> 16 <style> 17 [v-cloak] { 18 display: none; 19 } 20 </style> 21 </head> 22 <body> 23 <div id="app"> 24 <h2>{{ message }}</h2> 25 <h2 v-cloak> {{message}}</h2> 26 <!-- 使用v-cloak,结合css的v-cloak的style,能在解析前不显示数据--> 27 <!-- 原理:1.Vue实例1秒后创建,但是html的格式一致都有,如果没有v-cloak那么html的格式将在一开始就渲染。--> 28 <!-- 2.使用了v-cloak,则页面一开始检查有v-cloak属性,则不显示该便签,在1秒后创建Vue实例,Vue实例会将包含有v-cloak的标签去掉--> 29 <!-- 那么,1秒后就可以显示message的值。这个实际开发中可以在加载页面时使用。--> 30 </div> 31 32 <script src="../js/vue.js"></script> 33 <script> 34 setTimeout(function () { 35 const app = new Vue({ 36 el: '#app', 37 data: { 38 message: 'hello' 39 }, 40 }) 41 }, 1000) 42 </script> 43 </body> 44 </html>
作用:
使用v-cloak,结合css的v-cloak的style,能在解析前不显示数据 原理:1.Vue实例1秒后创建,但是html的格式一致都有,如果没有v-cloak那么html的格式将在一开始就渲染。 2.使用了v-cloak,则页面一开始检查有v-cloak属性,则不显示该便签,在1秒后创建Vue实例,Vue实例会将包含有v-cloak的标签去掉 那么,1秒后就可以显示message的值。这个实际开发中可以在加载页面时使用。
本文来自博客园,作者:kaer_invoker,转载请注明原文链接:https://www.cnblogs.com/invoker2021/p/14956435.html