vue.js之v-on与v-bind

v-on 指令

<div id="app">
	<button v-on:click="say">点击</button>
	<!--简写:<button @click="say">点击</button>-->
</div>

<script>
	let vm = new Vue({
		el: "#app",
		data: {
			name: 'Hellow Vue.js'
		},
		methods: {
			// `event` 是原生 DOM 事件  
			say: function(event) {
				// 方法内 `this` 指向 vm  
				console.log(this.name + '!');
				// 当前标签名
				console.log(event.target.tagName);
				// 当前元素
				console.log(event.currentTarget);
			}
		}
	});
</script>

这里写图片描述

<!-- 方法处理器 -->
<button v-on:click="doThis"></button>

<!-- 对象语法 (2.4.0+) -->
<button v-on="{ mousedown: doThis, mouseup: doThat }"></button>

<!-- 内联语句 -->
<button v-on:click="doThat('hello', $event)"></button>

<!-- 缩写 -->
<button @click="doThis"></button>

<!-- 停止冒泡 -->
<button @click.stop="doThis"></button>

<!-- 阻止默认行为 -->
<button @click.prevent="doThis"></button>

<!-- 阻止默认行为,没有表达式 -->
<form @submit.prevent></form>

<!--  串联修饰符 -->
<button @click.stop.prevent="doThis"></button>

<!-- 键修饰符,键别名 -->
<input @keyup.enter="onEnter">

<!-- 键修饰符,键代码 -->
<input @keyup.13="onEnter">

<!-- 点击回调只会触发一次 -->
<button v-on:click.once="doThis"></button>

<!-- 监听多个方法 -->
<input type="text" v-on="{ input:onInput,focus:onFocus,blur:onBlur, }">

v-bind 指令

动态地绑定一个或多个特性,或一个组件 prop 到表达式。

<div id="app">
	<a v-bind:href="link">百度</a><br>
	<a :href="link">简写</a>
</div>

<script>
	let vm = new Vue({
		el: "#app",
		data: {
			link: 'https://www.baidu.com/'
		}
	});
</script>

这里写图片描述

class对象语法

<!--方法一-->
<div id="app">
	<div class="static" 
		v-bind:class="{ 'age-statis': age_statis, 'edu-statis': edu_statis }">
	</div>
</div>

<script>
	let vm = new Vue({
		el: "#app",
		data: {
			age_statis:true,
			edu_statis:false
		}
	});
</script>
<!--方法二-->
<div id="app">
	<div class="static" v-bind:class="classObj"></div>
</div>

<script>
	let vm = new Vue({
		el: "#app",
		data: {
			classObj:{
				'age-statis':true,
				'edu-statis':false
			}					
		}
	});
</script>

以上两种方法结果都一样,如下图:

这里写图片描述
如果 edu_statis 的值为 trueclass 列表将变为 "static age_statis edu_statis"

class数组语法

<div id="app">
	<div class="static" v-bind:class="[age,edu]"></div>
</div>

<script>
	let vm = new Vue({
		el: "#app",
		data: {
			age: 'age-statis',
			edu: 'edu-statis'
		}
	});
</script>

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫老板的豆

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值