Vue的基本语法上

前言

今天的博客为大家分享的是Vue的基本语法,学习基本语法之前当然也是可以去看一下Vue的初步学习!

Vue的初步学习

1、插值

主要是用到{{msg}}来进行插值的使用!

1.1、文本插值

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue的插值</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>
<div id="app">
<h1>  Vue的插值 title={{title}},ts={{ts}}</h1><br/>
</div>	
<script type="text/javascript">
var  vue=new Vue({
   el:'#app',
   data:function(){
   	return{
   		title:'hello Vue的插值!',
   		ts:new Date().getTime()
   	}
   }
});
</script>
</body>
</html>

效果呈现

在这里插入图片描述

1.2、html

主要是使用v-html指令用于输出html代码!

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue的html</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>
<div id="app">
	<h1>Vue的html</h1>
    <div v-html="html"></div><br />
</div>
<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				html:'<input type="text" value="LYF">'
			}
		}
	});
</script>
</body>
</html>

这一行就是使用了v-html指令

 <div v-html="html"></div><br/>

这一行是拼接一个htm片段代码 并且设置默认值

html:'<input type="text" value="LYF">'

效果展示

在这里插入图片描述

1.3、属性

HTML属性中的值应使用v-bind指令

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue的属性</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>
<div id="app">
<ul>
    <h1>3、a标签跳转</h1>
	<a href="https://www.baidu.com">百度</a><br />
	
	<h1>3.1、v-bind属性</h1>
	<a v-bind:href="href">新浪</a><br/>
	
</div>	
</ul>
<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				href:'http://www.sina.com',
			}
		}
	});
</script>
</body>
</html>

a标签跳转方式

<a href="https://www.baidu.com">百度</a><br />

利用v-bind属性跳转方式

<a v-bind:href="href">新浪</a><br/>

只需要在下面定义对应的href属性就好!

效果展示:

在这里插入图片描述

当然你也可以使用Fn+F12键盘开启开发者模式,查看href属性的形式会更加清晰明了!

在这里插入图片描述

1.4、表达式

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue的基本语法</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>
  <div id="app">
  
	<h1>4、表达式</h1>
	str={{str.substr(0,6).toUpperCase()}}
	
	<h1>5、数字的表达式</h1>
	number={{number+1}}
	
	<h1>6、三元运算符</h1><br />
	{{ ok ? 'YES':'NO'}}
	
	<h1>7、拼接id</h1>
	<li v-bind:id="'list-'+id">我的Id是js动态生成的!</li>
 </div>	

<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				str:'lyfdezhongshifensi',
				number:15,
				ok:false,
			    id:'LYF'
			}
		}
	});
</script>
</body>
</html>

这一行代码是将字符串截取到第六位,再转大写 !

str={{str.substr(0,6).toUpperCase()}}

这一行代码是给定义的number属性进行+1的赋值!

number={{number+1}}

这一行代码是使用的三元运算符,给ok属性进行定义,当ok属性为false时候,则输出No,反之则输出YES !

{{ ok ? 'YES':'NO'}}

效果展示:

在这里插入图片描述

2、指令

指的是带有“v-”前缀的特殊属性

2.1、核心指令

(v-if|v-else|v-else-if)/v-show/v-for/v-bind/v-on/v-model

2.2、v-if|v-else|v-else-if指令

  • v-if|v-else|v-else-if:根据其后表达式的bool值进行判断是否渲染该元素
  • v-else-if上一个兄弟元素必须是v-if
  • v-else上一个兄弟元素必须是v-if或者是v-else-if

注意:三者之间为兄弟元素!

第一种情况:当定义的sex属性为boy:

在这里插入图片描述

第二种情况:当定义的属性为girl:

在这里插入图片描述
第三种情况:当定义的sex属性既不为boy或girl:

在这里插入图片描述

2.3、v-show指令

v-show指令会渲染其身后表达式为false的元素,给这样的元素添加css代码:style=“display:none”

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>

<div id="app">
	  <h1>2、v-show显示</h1>
	  <input type="checkbox" v-model="show"/>隐藏或显示
	  <div v-show="show">
		  是李易峰啊!
	  </div>
</div>	

<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				show:false,
			}
		}
 });
</script>
</body>
</html>

效果展示:

在这里插入图片描述

2.4、v-for指令

v-for指令有点类似JS的遍历 !

遍历的种类具体解析
遍历数组v-for=“item in items”, items是数组,item为数组中的数组元素
遍历对象v-for="(value,key,index) in stu", value属性值,key属性名,index下标
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>

<div id="app">
	  <h1>3、v-for循环</h1>
	  <div v-for="st in students">
		  {{st}}
		  {{st.name}}
	  </div>
</div>	

<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				students:[
					{id:1,"name":"小明","sex":"男"},
					{id:2,"name":"小张","sex":"女"},
					{id:3,"name":"小李","sex":"男"},
					{id:4,"name":"小汪","sex":"女"},
					{id:5,"name":"小兰","sex":"女"}
				],
		  }
		}
	});
</script>
</body>
</html>

这种方式有点类似于el表达式的取值!

 {{st.name}}

在这里插入图片描述
v-bind、v-on、 v-model就不做过多解释!

2.5、v-model指令

v-model:用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>

	<div id="app">
		  <h1>5、利用v-model绑定数据</h1>
		  KB:<input type="text" name="kb" v-model="kb"/><br/>
		  MB:<input type="text" name="mb" v-model="mb"/><br/>
	</div>	
	
	<script type="text/javascript">
		var  vue=new Vue({
			el:'#app',
			data:function(){
				return{
					kb:1024,
					mb:1
				}
			}
		});
	</script>
</body>
</html>

效果展示:

在这里插入图片描述

2.6、v-for/v-model指令

v-for/v-model一起绑定[多选]复选框和单选框

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>

<div id="app">
	  <h1>v-model  v-for两者的绑定</h1>
	  <div v-for="st in students">
	  <input type="checkbox" v-model="st.id" />{{st.name}}
	  </div>
</div>	

<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				students:[
					{id:1,"name":"小明","sex":"男"},
					{id:2,"name":"小张","sex":"女"},
					{id:3,"name":"小李","sex":"男"},
					{id:4,"name":"小汪","sex":"女"},
					{id:5,"name":"小兰","sex":"女"}
				],
			}
		}
	});
</script>
</body>
</html>

效果展示:

在这里插入图片描述

2.7、 v-model、watch属性

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>

<div id="app">
	  <h1>KB和MB之间的转换 监听属性</h1>
	  <!-- 主要是使用了监听属性 在购物车中做小计以及总价的结算可利用该属性-->
	   KB:<input type="text" name="kb" v-model="kb"/><br/>
	   MB:<input type="text" name="mb" v-model="mb"/><br/>
</div>	

<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				kb:1024,
				mb:1
			}
		},
		/* 监听属性*/
		watch:{
			kb:function(v){
				this.mb=v/1024;
			},
			mb:function(v){
				this.kb=v*1024;
			}
		}
	});
 </script>
</body>
</html>

效果展示:

在这里插入图片描述

3、动态参数

可以用方括号括起来的JavaScript表达式作为一个指令的参数

 <a v-bind:[attrname]="url"> ... </a>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>

<div id="app">
	   <h1>8、动态参数</h1>
	   <a v-bind:[attributename]="url">baidu</a>
</div>	

<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				attributename:'href',
				url:'https://www.baidu.com',
			}
		}
	});
</script>
</body>
</html>

动态参数的值可以动态变化 但是需要注意回避大写

效果展示:

在这里插入图片描述
跳转后:

在这里插入图片描述

4、v-bind和v-on的简写

Vue为v-bind和v-on这两个最常用的指令,提供了特定简写 !

  • v-bind的简写: v-bind等同于冒号

  • .v-on的简写: v-on等同于@

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue的基本语法</title>
</head>
<script type="text/javascript" src="js/vue.js"></script>
<body>

<div id="app">
	<h1>3.1、v-bind属性</h1>
	<a v-bind:href="href">新浪</a><br/>
	
	<h1>3.1.1、Vue的v-bind简写</h1><br/>
	<a :href="href">新浪微博</a><br/>
	
	<h1>3.1.2、v-on属性</h1><br/>
	<input type="button" value="按钮" v-on:click="onclick()"/>
	
	<h1>3.1.3、Vue的v-on简写</h1>
	<input type="button" value="简写使用的按钮" @click="onclick()" /><br/>
	
</div>	
	
<script type="text/javascript">
	var  vue=new Vue({
		el:'#app',
		data:function(){
			return{
				href:'http://www.sina.com',
			}
		},
		methods:{
			onclick(){
				alert(11111);
			}
		}
	});
</script>
</body>
</html>

在这里插入图片描述

当然不管是哪种方式,最种的效果都是一样的!

总结

Vue的基本语法第一部分就到这里了,后续会继续分享Vue的相关知识点,Vue的使用过程中多注意标点符号,方法和方法之间用逗号隔开,属性与属性之间以逗号隔开,以及动态参数中的回避大写!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值