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的使用过程中多注意标点符号,方法和方法之间用逗号隔开,属性与属性之间以逗号隔开,以及动态参数中的回避大写!