Day54 Vue的语法***

Vue的插值表达式

{{message}}

  • (1)mustache 美[ˈmʌstæʃ] 口上须,八字须;
  • (2)数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值,Mustache 标签将会被替代为对应数据对象上属性的值
  • (3)特点是什么?
    绑定的数据对象上属性发生了改变,插值处的内容都会更新
    每个绑定都只能包含单个表达式
  • (4)案例
{{true ? 'OK':'Not OK'}}
<!-- 这是语句,不是表达式 -->
{{ var a = 1 }} //错误
<!-- 流控制也不会生效,请使用三元表达式 -->
{{ if (ok) { return message } }} //错误

事件1:点击事件 v-on

<body>
		<div id="app">
			{{message}}  
			<button v-on:click="func1('hello')">vue的onclick</button>
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						message:'hello Vue3'
					},  //对应的数据
					methods:{
						func1:function (msg) {//msg='hello'
							alert(msg)
						}
					}

				}
		) //创建了MVVM中的VM对象
	</script>

事件2:键盘事件 v-on

  • (1) $event表示Vue中的事件对象,类似js中的对象一样。
    $event
  • (2)keyCode是什么?
    键盘的编码

	<body>
		<div id="app">
			<input type="text" v-on:keydown="fun($event)">
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						message:'hello Vue3'
					},  //对应的数据
					methods:{
						fun:function (event) {//事件对象包含 event=$event
							alert(event.keyCode)
						}
					}

				}
		) //创建了MVVM中的VM对象
	</script>

事件3:鼠标事件 v-on

  • (1)v-on:mouseover=“函数名()” 表示监听的是鼠标停留事件
  • (2)可以简写@mouseover=”函数名()”
<body>
		<div id="app">
<!--			<div v-on:mouseover="fun($event)" style="height: 200px;width: 200px;background-color: green" >-->

<!--			</div>-->

			<div @mouseover="fun($event)" style="height: 200px;width: 200px;background-color: green" >

			</div>
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						message:'hello Vue3'
					},  //对应的数据
					methods:{
						fun:function (event) {//事件对象包含 event=$event
							alert("进入范围")
						}
					}

				}
		) //创建了MVVM中的VM对象
		
	</script>

Vue中的事件修饰符

  • (1)什么是事件修饰符?
    Vue.js 为 v-on 提供了事件修饰符。
    修饰符是由点开头的指令后缀来表示的。相当于调用事件的方法

  • (2)常见修饰符
    在这里插入图片描述

  • (3)案例
    表单提交
    嵌套点击

  • (4) prevent与stop

  • prevent消灭事件

  • stop 消灭内部标签传给外部标签的事件

<body>
		<div id="app">
			<form @submit.prevent action="#" method="post">
				<input type="text" name="username"><br/>
				<input type="text" name="password"> <br/>
				<input type="submit" value="login"> <br/>
			</form>
			<div>
				<a @click.prevent href="http://www.baidu.com">进入百度页面</a>
			</div>

			<div @click="fun1" style="height: 200px;width: 200px;background-color: green">
				<div @click.stop ="fun2"  style="height: 100px;width: 100px;background-color: red">

				</div>
			</div>
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						message:'hello Vue3'
					} ,//对应的数据
					methods:{
						fun1:function () {
							alert("我是绿的")
						},
						fun2:function () {
							alert("我是红的")
						}
					}
				}
		) //创建了MVVM中的VM对象
		
	</script>

Vue中的按键修饰符

  • (1)什么是按键修饰符
    Vue 允许为 v-on 在监听键盘事件时添加按键修饰符
    相当于对keyCode进行判断,如查是符合条件的按键才执行对应的函数
    在这里插入图片描述

  • (2)案例

<body>
		<div id="app">
			<input type="text" v-on:keyup.enter="fun1($event)">
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						message:'hello Vue3'
					} ,//对应的数据
					methods:{
						fun1:function (event) {
							//if(event.keyCode==13){
								alert("你点了回车")
							//}
						}
					}
				}
		) //创建了MVVM中的VM对象
		
	</script>

读data数据的三个指令

  • (1)v-text 读data中的数据(代码),显示成字符串
  • (2)v-html读data中的数据(代码),如果是代码,则执行代码
  • (2)v-bind读data中的数据赋值给属性
<body>
		<div id="app">
			<div v-text="message"></div>
			<div >{{message}}</div>
			<div v-html="message"></div>
			<font v-bind:color="color1">我爱中国</font>
			<font :color="color2">我爱中国</font>
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						message:'<font color="green"/>HelloWord</font>',
						color1:'green',
						color2:'red'
					} ,//对应的数据
					methods:{

					}
				}
		) //创建了MVVM中的VM对象
	</script>

控制显示的指令两个

  • (1)v-if读data数据,判断是否显示
  • (2)v-show读data数据,判断是否显示
<body>
		<div id="app">
			<div v-if="flag">我是hello</div>
			<div v-show="flag">我是world</div>
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						flag:false
					} ,//对应的数据
					methods:{

					}
				}
		) //创建了MVVM中的VM对象
		
	</script>

循环指令***重点

  • (1)v-for=”(元素) in 数组”
  • (2)v-for=”(value,key) in map集合”
  • (3)v-for=”(元素,index) in list集合”
    读data中的多个元素,循环显示每一个元素
<body>
		<div id="app">
<!--			<option v-for="(元素) in 数组"></option>-->
					<select >
						<option v-for="(name) in arr">{{name}}</option>
					</select>

			<hr/>
		<!--	<li v-for="(值,键)in map集合"></li>-->
			<ul>
				<li v-for="(value,key) in product">{{key}} , {{value}}</li>
			</ul>
			<hr/>
<!--			<tr v-for="(元素,索引 ) in 列表">-->
			<table border="1px" width="100%">
					<tr>
						<td>序号</td>
						<td>名字</td>
						<td>年龄</td>
						<td>地址</td>
					</tr>
					<tr v-for="(user,index ) in userList">
						<td>{{index}}</td>
						<td>{{user.name}}</td>
						<td>{{user.age}}</td>
						<td>{{user.address}}</td>
					</tr>
			</table>
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						arr:['人事部','Java','Python'],
						product:{name:'苹果12',price:1000,address:'bj'},
						userList:[{name:'jack',age:13,address:'bj'},{name:'rose',age:12,address:'bj'},{name:'tony',age:12,address:'bj'}]
					} ,//对应的数据
					methods:{

					}
				}
		) //创建了MVVM中的VM对象
		
	</script>

model指令***重点

  • (1)v-model是一个指令,限制在<input>、<select>、<textarea>、components中使用
<body>
		<div id="app">
			<!--更新-->
			<form action="" method="post">
				username:<input type="text" v-model="user.username" ><br/>
				password:<input type="text" v-model="user.password" ><br/>
				<input type="submit" value="login" ><br/>
			</form>
			<hr/>
			{{user.username}}
			{{user.password}}
		</div>
	</body>
	<script>
		//view model
		var vm = new Vue(
				{
					el:'#app', //让vu掌握指定的视频区域
					data:{
						user:{username:'jack',password:'123456'}
					} ,//对应的数据
					methods:{

					}
				}
		) //创建了MVVM中的VM对象
		
	</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翁老师的教学团队

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

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

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

打赏作者

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

抵扣说明:

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

余额充值