Vue系统指令
在vue的指令语法(用于解析标签)中分为系统指令和自定义指令:
系统指令(vue中封装好的指令,可以直接使用)
- 语法格式:v-xxxx <元素 v-xxx=‘指令值’>
- 系统指令:v-(model , html , text , pre , if , show , on , bind,for)
特殊记忆:[v-cloak]:斗篷指令
- v-html指令:
- 实现文本的插入,{{}}和v-text默认不解析数据中的代码,为了防止xss攻击(通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意代码到网页)
- v-text:
- 也是文本插入的一种
- v-pre:
- 原样输入:在解析过程中vue语法不会被解析
- [v-cloak]:斗篷
面试题:如何解决vue页面的初始化闪动问题:如果在工作的时候引入vue.js文件时候需要写在后面,因为vue.js文件在加载的时候。需要时间,由于网络原因出现加载过慢的现象,会导致代码需要等待。所有需要使用[v-cloak]功能。
代码如下:
//在style中写 // [v-cloak]{ display:none; } //在html中写 <p v-cloak>{{name}}</p> //在js中 除了将vue.js放在body下面应用外,其他按原先写
v-if指令:
- 控制元素的显示于不显示,若为true,显示,false相反
v-show指令:
- 同上(v-if)
注意:show与if的区别:if若为false,就删除该节点。show若为false,就给该元素设置一个style=display:none属性。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src='./vue.js'></script>
</head>
<body>
<div id="app">
<input type="text" placeholder="a" v-model="a">
<p>{{a}}</p>//html
<p v-text="b">这个是{{b}}</p>//<h1>b</h1>
<p v-html="b">这个是{{b}}</p>//b
<p v-pre>不会解析:{{b}}</p>//不会解析:{{b}}
<p v-show="c">这个是v-show</p>//这个是v-show
<p v-if="c">这个是v-if</p>//这个是v-if
</div>
</body>
<script>
new Vue({
el:'#app',
data:{
a:'html',
b:'<h1>b</h1>',
c:true,
}
})
</script>
</html>
v-model:双相系统绑定,用于数据绑定,默认收集的就是value值(用于form表单元素)
代码如下:
//v-model使用语法 <>input type='text' name='xxx' v-model='键'> <p>{{键}}</p>//将输入框中和p标签中的信息相连,当input中值该变后,p中改变 new Vue({ el:'', data:{ 键:值 } })
v-bind指令:在属性使用,在属性前面添加,系统会将属性值解析为关于js的表达式
注意:关于v-bind与v-model
v-bind为单项绑定:数据只能从data流向页面
v-model为双向绑定:数据不仅能从data流向页面,还可以从页面流向data
代码如下:
//可以简写为 <元素 :属性='vue语法'></元素> <div id="app"> <a :href="b">{{str}}</a>//在属性前面加v-bind 或 : <button @click="fun()">点击变游戏</button> </div> <script src="./vue.js"></script> <script> new Vue({ el:'#app', data:{ b:'http://www.baidu.com', str:'百度', }, methods:{ fun(){ this.b='http://www.7k7k.com'; this.str='小游戏'; } } }) </script>

浙公网安备 33010602011771号