数据的双向绑定、条件与循环
2019-03-06 本文已影响0人
忆曦雪_
一、数据的双向绑定
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>v-model数据双向绑定练习</title>
<!-- 通过CDN引入Vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<!-- Vue-app的根容器 -->
<div id="app">
<input type="text" v-model="name" placeholder="请输入:"/>
<h2>你好,{{name}}</h2>
</div>
<script type="text/javascript">
// 实例化一个Vue对象
var app=new Vue({
el:'#app',
data:{
name: 'abcd'
}
})
</script>
</body>
</html>
运行结果
-
使用v-bind绑定data中的属性
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>v-bind单向绑定练习</title>
<!-- 通过CDN引入Vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<!-- Vue-app的根容器 -->
<div id="app">
<p>姓名:{{name}}</p>
<input type="text" v-bind:value="description" />
<a v-bind:href="url">{{website}}</a>
<img :src="avatar" >
</div>
<script type="text/javascript">
// 实例化一个Vue对象
var app=new Vue({
el:'#app',
data:{
name:'尤雨溪',
description:'Vue.js的创立者',
website:'Vue.js官网',
url:'https://cn.vuejs.org/',
avatar:'https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign=c08a0c60a844ad342ebf8081e8996bc9/4afbfbedab64034f29596c8ba6c379310b551da2.jpg'
}
})
</script>
</body>
</html>
语法糖:v-bind可以简写为:,如<img :src="avatar"/>
-
运行结果:
运行结果
二、条件与循环
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Vue.js条件和循环的综合练习</title>
<!-- 通过CDN引入Vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<style type="text/css">
.container{
display: flex;
width: 80%;
margin: 0 auto;
}
.card{
width: 200px;
height:200px;
margin-right: 30px;
border: 1px solid #EEE;
border-radius: 10px;
text-align: center;
}
.card img{
height:100%;
width:100%;
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
.like{
color: green;
font-weight: bold;
}
.nolike{
color:red;
font-weight: bold;
}
</style>
</head>
<body>
<!-- Vue-app的根容器 -->
<div id="app">
<h2 v-if="show">显示图书信息</h2>
<div class="container">
<!-- 通过循环遍历books数组 -->
<div class="card" v-for="book in books">
<!-- 显示图片的名称 -->
<h4>{{book.name}}</h4>
<!-- 绑定图片的封面属性 -->
<img :src="book.cover">
<!-- 判定like的值,显示不同的文字 -->
<p class="like" v-if="book.like">喜欢</p>
<p class="nolike" v-else>不喜欢</p>
</div>
</div>
</div>
<script type="text/javascript">
// 实例化一个Vue对象
var app=new Vue({
el:'#app',
data:{
show:true,
books:[
{
name:'无名盛宴',
cover:'img/1.jpg',
like:true
},
{
name:'念楼学短',
cover:'img/2.jpg',
like:false
},
{
name:'且在人间',
cover:'img/3.jpg',
like:true
},
{
name:'你好,地球人',
cover:'img/4.jpg',
like:false
}
]
}
})
</script>
</body>
</html>
运行结果:
运行结果
- 条件渲染指令: v-if、v-else-if、v-else:可以根据表达式的值在DOM中渲染或销毁元素/组件,与v-show不同的是,v-if是真正的条件渲染,适合条件不经常变更的场景;而v-show只是简单的CSS属性切换,使用于频繁切换条件。
- 列表渲染指令:v-for:当需要将一个数组遍历或枚举一个对象循环显示时,会用到列表渲染指令v-for,结合in来使用