到本节为止,我们学过的指令:
v-bind
:单向绑定解析表达式v-model
:双向数据绑定v-for
:历数组/对象/字符串等v-on
:绑定事件监听,可简写为@
v-if
:条件渲染(动态控制节点是否存在)v-else
:条件渲染(动态控制节点是否存在)v-show
:条件渲染(动态控制节点是否展示)一、v-text
html
标签,则不会解析。插值语法{{xxx}}
的区别:v-text
会替换掉节点中的内容,插值语法则不。<div id="root">
<div>Hello, {{name}}div>
<div v-text="htmlStr">div>
div>
<script>
new Vue({
el:'#root',
data:{
name:'Vue',
htmlStr:'Vue
'
}
})
script>
二、v-html
html
结构的内容。插值语法
的区别:v-html
会替换掉节点中所有的内容,{{xx}}
则不会。v-html
可以解析html
结构。v-html
有安全性问题!!!HTML
是非常危险的, 容易导致XSS
攻击。v-html
,永不要用在用户提交的内容上!<div id="root">
<div>Hello, {{name}}div>
<div v-html="htmlStr">div>
<div v-html="htmlStr2">div>
<div v-html="htmlStr3">div>
div>
<script>
new Vue({
el:'#root',
data:{
name:'Vue',
htmlStr:'Vue
',
htmlStr2:'点击我,你会发现奇迹!',
htmlStr3:'点击我,你会发现奇迹2!'
}
})
script>
github
登入页,输入用户名、密码请求登入。github
服务器进行校验,登入成功,返回字符串cookie值,里面包括用户名和密码等信息,可以建简易的理解为键值对,k1:v1 k2:v2
github
其他网页,如查看所有仓库,会同时把k1:v1 k2:v2
发送给github服务器,此时我们不需要登入了。k3:v3
登入github
成功后cookie
的信息所下图所示,其中有一列为HttpOnly
,这里如果打勾,表示只能通过http协议才能查看,其余方式查看不了,我们把这里的cookie
的值都打勾,在控制台输入document.cookie
就查看不到任何cookie
值了.
安装插件:cookie edit
,如下图所示
点击插件图标,就可以看到cookie
值了
可以导出cookie
值,点击 Export JSON
[
{
"domain": "127.0.0.1",
"hostOnly": true,
"httpOnly": false,
"name": "a",
"path": "/",
"sameSite": null,
"secure": false,
"session": true,
"storeId": null,
"value": "1"
},
{
"domain": "127.0.0.1",
"hostOnly": true,
"httpOnly": false,
"name": "b",
"path": "/",
"sameSite": null,
"secure": false,
"session": true,
"storeId": null,
"value": "2"
}
]
打开其他浏览器,可以通过该插件导入cookie
三、v-cloak
v-cloak
指令:没有值
Vue
实例创建完毕并接管容器后,会删掉v-cloak
属性。css
配合v-cloak
可以解决网速慢时页面展示出{{xxx}}
的问题。下面案例中,加载vue.js
时,由于控制的是过几秒才能加载成功。这个时候,将会阻塞页面,等到加载成功之后,会继续执行下面的脚本。
所以,为了避免在vue.js
未加载成功时页面显示{{name}}
的问题,我们使用了属性选择器[v-cloak]{display: none;}
隐藏。
在vue.js
加载成功之后,Vue会自动删除v-cloak
属性,从而属性选择器便不起作用了,进而显示出name
的值.
<style>
/* 属性选择器 */
[v-cloak] {
display: none;
}
style>
<div id="root">
<div v-cloak>Hello, {{name}}div>
div>
<script type="text/javascript" src="http://localhost:8080/vue.js">script>
<script>
new Vue({
el:'#root',
data:{
name:'Vue'
}
})
script>
四、v-once
v-once指令
v-once
所在节点在初次动态渲染后,就视为静态内容了。v-once
所在结构的更新,可以用于优化性能。<div id="root">
<h2 v-once>初始化n的值是:{{n}}h2>
<h2>当前的n值是:{{n}}h2>
<button @click="n++">n++button>
div>
<script>
new Vue({
el:'#root',
data:{
n:1
}
})
script>
五、v-pre
<div id="root">
<h2 v-pre>Hello Vueh2>
<h2 v-pre>当前的n值是:{{n}}h2>
<button v-pre @click="n++">n++button>
div>
<script>
new Vue({
el:'#root',
data:{
n:1
}
})
script>