vue-02-指令和属性

v-cloak 属性

解决插值表达式闪烁问题

  • 在标签中加入v-cloak属性

  • 设置v-cloak的样式

1
2
3
[v-cloak] {
display: none
}
1
<p v-cloak>{{ msg }}</p>

v-text 属性

默认没有闪烁问题

会覆盖标签中所有内容

1
2
3
<h4 v-text="msg">!@#$%^*</h4>
<!-- msg得在data中定义 -->
<!-- 里面写再多东西也没用,!@#$%^*会被覆盖 -->

v-html 属性

以HTML格式解析字符串

1
2
3
4
5
6
7
8
9
10
11
<h1	v-html="msg"></h1>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: 'hello world',
msg1: 'hello 世界',
msg2: '<i>我是斜体</i>'
}
})
</script>

v-bind 指令

给属性绑定值

简写(冒号): :title=”msg3”

1
2
3
4
5
6
7
8
9
10
11
12
<input type="button" value="按钮" v-bind:title="msg3 + '123'" />
<script>
var vm = new Vue({
el: '#app',
data: {
msg: 'hello world',
msg1: 'hello 世界',
msg2: '<i>我是斜体</i>',
msg3: 'v-bind用于给属性绑定值'
}
})
</script>

v-on 指令

用于绑定事件

简写: @click=”show()”

1
2
3
4
5
6
7
8
9
10
11
12
<input type="button" value="按钮" v-bind:title="msg3" v-on:click="show()" />
<input type="button" value="yuanshengshow" @click="yuanshengshow">
<script>
methods: {
yuanshengshow: function () {
alert('方法的原生写法')
},
show() {
alert('v-on用于绑定事件')
}
}
</script>

事件修饰符

  • .stop 阻止默认的冒泡行为
  • .prevent 阻止默认行为
  • .capture 使用捕获触发事件
  • .self 只点击自己一个人(不冒泡、不捕获)才会触发事件
  • .once 只触发一次事件处理函数

v-model 双向数据绑定

实现表单元素和model中数据的双向数据绑定

v-model只能用于表单元素中(input、select、checkbox、textarea)

1
<input type="text" v-model="msg" />

v-for 指令

1
2
3
4
5
6
<p v-for="(item, i) in list">{{ i }}号 -- {{ item.name }} {{ item.sex }} {{ item.age }}</p>
<ul>
<li v-for="(value, key, index) in obj">{{ index }} -- {{ key }} -- {{ value }</li>
</ul>
<li v-for="count in 10">{{ count }}</li>
<!-- 直接循环数字 -->

特殊的key属性

这个key不是对象中的键,而是每次循环的唯一标识

1
2
3
<p v-for="(item, i) in list" :key="item.age">
<input type="checkbox">{{item.name}}--{{item.sex}}--{{i}}
</p>

v-if 和 v-show 指令

  • v-if 会重新删除或创建元素,切换时性能消耗大,适用于显示一遍就不显示了
  • v-show 只是控制元素的display:none,初始渲染时性能消耗大,适用于频繁切换
1
2
3
<input type="button" value="change" @click="flag=!flag">
<p v-if="flag">v-if</p>
<p v-show="flag">v-show</p>

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×

// tidio机器人助手