【springBoot前端】--Vue基础语法大全



Vue的基础语法

(1)Mustache语法(双大括号)

{{message}}

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

<h1>hello {{name}} </h1>
<h1>{{name1}} {{name2}} </h1>
<h1>{{name1 + ' ' + name2}} </h1>
<h1>{{name1 * 2}} </h1>

(2)读data数据的三个指令

(2-1)v-text (添加文本)

读data中的数据(代码),显示成字符串

<h1 v-text="msg">hello</h1>
//msg为字符串
//缺点 会覆盖元素中原有文本 建议用{{}}

(2-2)v-html(添加标签)

读data中的数据(代码),如果是代码,则执行代码

<h1 v-html="url">hello</h1>
//url为含标签的字符串

(2-3)v-bind(动态绑定属性)

读data中的数据赋值给属性

(2-3-1)简单绑定
<img v-bind:src="url">
//v-bind表明src属性是动态绑定的,于是就会在data中寻找对应的值
(2-3-2)对象绑定
<div v-bind:class="{active:isActive,text-danger:hasError}"></div>
<button v-on:click="btnClick">按钮</button>
//添加一个对象,当对象中的类名的值为true时,该类绑定到元素上
<script>
  const app=new Vue({
    el:'#app',
    data:{
      isActive:true,
      hasError:false
    },
    methods:{
    	btnClick:function(){
    		this.isActive = !this.isActive
    	}
    }
  })
</script>
(2-3-3)数组绑定
<div v-bind:class="[class1,class2]"></div>
//<div v-bind:class="['class1','class2']"></div>
//有''表示为字符串 无''表示变量
<script>
  const app=new Vue({
    el:'#app',
    data:{
    	class1:'aa',
    	class2:'bb'
    }
  })
</script>
(2-3-4)style对象绑定
//50px得加'',否则当作变量解析
//两种表达方式
<div v-bind:style="font-size:'50px'"></div>
<div v-bind:style="fontSize:'50px'"></div>
<div v-bind:style="{fontSize:finalSize + 'px', color:finalColor}"></div>
//有''表示为字符串 无''表示变量
<script>
  const app=new Vue({
    el:'#app',
    data:{
 		finalSize:100,
 		finalColor:'red'
 		//data中字符串得加''
    }
  })
</script>
(2-3-5)style数组绑定
<div v-bind:style="[baseStyle,base]"></div>
//有''表示为字符串 无''表示变量
<script>
  const app=new Vue({
    el:'#app',
    data:{
		baseStyle:{fontSize:'20px'},
		base:{backgroundColor:'red'}
    }
  })
</script>

(2-4)案例

<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>

(3)控制显示的指令

(3-1)v-if v-else-if v-else

<div id="app">
//v-if 如果为true则显示 为false则不显示
<h1 v-if="isShow"></h1>
//v-if-else 显示true的那个
<h1 v-if="isShow">if显示</h1>
<h1 v-else>else显示</h1>
//v-else-if 多条件不建议使用 太复杂 
<h1 v-if="score>=90">优秀</h1>
<h1 v-else-if="score>=60">良好</h1>
<h1 v-else></h1>
</div>

<script src="vue.js"></script>
<script>
  const app=new Vue({
    el:'#app',
    data:{
        isShow:true,
        score:50
    }
  })
</script>
实例:用户账户邮箱切换
<div id="app">
    <span v-if="isUser">
    //label作用:当鼠标点击label文本的时候for所指向的input会聚焦
        <label for="username">用户账号</label>
        //不同的key用来解决切换后输入框内的内容不清空的情况
        <input type="text" id="username" placeholder="用户账号" key="123">
    </span>
    <span v-else>
        <label for="email">用户邮箱</label>
        <input type="text" id="email" placeholder="用户邮箱" key="abc">
    </span>
    <button @click="isUser = !isUser">切换类型</button>
</div>

<script src="vue.js"></script>
<script>
  const app=new Vue({
    el:'#app',
    data:{
        isUser:true,
    }
  })
</script>

(3-2)v-show

//当v-if为false时,元素根本不在dom中
//当v-show为false时,给元素添加一个行内样式dipslay:none
//当需要频繁在显示和隐藏之间切换时用v-show
//当只有一次切换时,多用v-if
<h1 v-if="isShow">if显示</h1>
<h1 v-show="isShow">show显示</h1>

(3-3)案例

<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>

(4)v-on

(4-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>

(4-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>

(4-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>

(5)Vue中的修饰符

(5-1)事件修饰符

  • (1)什么是事件修饰符?
    Vue.js 为 v-on 提供了事件修饰符。
    修饰符是由点开头的指令后缀来表示的。相当于调用事件的方法
  • (2)常见修饰符
.stop 阻止事件继续传播
.prevent 阻止标签默认行为
.capture 使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理
.self 只当在 event.target 是当前元素自身时触发处理函数
.once 事件将只会触发一次
.passive 告诉浏览器你不想阻止事件的默认行为
  • (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>

(5-2)Vue中的按键修饰符

  • (1)什么是按键修饰符
    Vue 允许为 v-on 在监听键盘事件时添加按键修饰符
    相当于对keyCode进行判断,如查是符合条件的按键才执行对应的函数
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
<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>

(6)循环指令v-for

  • (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>

(7)v-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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot + MyBatis + Vue 是一种经典的 Web 开发技术栈,常用于后端服务与前端页面的搭建。 其中,Spring Boot 是一个快速开发框架,可以快速构建后端服务;MyBatis 是一个优秀的 ORM 框架,可以方便地操作数据库;Vue 是一个流行的前端框架,可以快速构建单页面应用。 基于 Spring Boot + MyBatis + Vue 的开发流程一般如下: 1. 使用 Spring Initializr 创建一个 Spring Boot 项目,添加 MyBatis 和相关依赖。 2. 配置 MyBatis 数据库连接信息、Mapper 映射文件等。 3. 编写 Controller 层,处理请求并返回数据。 4. 编写 Service 层,实现业务逻辑,并调用 Mapper 层操作数据库。 5. 编写 Vue 前端页面,使用 axios 等库发送请求,并处理响应数据。 6. 后端服务与前端页面进行集成,前端页面可以通过 Ajax 等方式调用后端服务。 7. 部署项目到服务器上,测试和运行。 在开发过程中,可以使用一些常用的工具和框架来提高开发效率和代码质量,例如: 1. 使用 MyBatis Generator 自动生成 Mapper 映射文件和 Model 类。 2. 使用 Swagger UI 自动生成 API 文档,方便前端调用接口。 3. 使用 Vue CLI 脚手架快速搭建前端项目,并集成 Element UI 等组件库。 4. 使用 Git 进行版本控制,便于多人协作和代码管理。 综上所述,基于 Spring Boot + MyBatis + Vue 的技术栈可以快速构建 Web 应用程序,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值