Vue学习:简单的ToDoList开发
一、知识点
1.1 v-for
v-for=“item in list”,这里告诉vue需要去循环list里面的数据,循环的每一项我都放进item里面,然后利用插值表达式{{}}去使用item,
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">
<input type="text"/>
<button>提交</button>
<ul>
<li v-for="item in list">{{item}}</li>
</ul>
</div>
</body>
<script>
var app = new Vue({
el:'#app',
data:{
list:['Jessica1','Jessica2','Derrick']
}
})
</script>
</html>
1.2 v-on
代表在这个DOM上绑定一个时间,冒号后面代表需要绑定的事件,这里绑定的是click事件,handleBtnClick这里是方法的名字,而方法是需要定义在Vue实例里面的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">
<input type="text"/>
<button v-on:click="handleBtnClick">提交</button>
<ul>
<li v-for="item in list">{{item}}</li>
</ul>
</div>
</body>
<script>
var app = new Vue({
el:'#app',
data:{
list:[]
},
methods:{
handleBtnClick:function(){
alert('click')
}
}
})
</script>
</html>
1.3 v-model
v-model指的是数据的双向绑定,这里例子中,当input框里面的内容发生变化的时候,vue实例的inputValue也会发生变化,当vue实例的inputValue发生变化的时候,input框里面的内容也会发生变化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="inputValue"/>
<button v-on:click="handleBtnClick">提交</button>
<ul>
<li v-for="item in list">{{item}}</li>
</ul>
</div>
</body>
<script>
var app = new Vue({
el:'#app',
data:{
list:[],
inputValue:''
},
methods:{
handleBtnClick:function(){
alert('click')
}
}
})
</script>
</html>
二、ToDoList例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="inputValue"/>
<button v-on:click="handleBtnClick">提交</button>
<ul>
<li v-for="item in list">{{item}}</li>
</ul>
</div>
</body>
<script>
var app = new Vue({
el:'#app',
data:{
list:[],
inputValue:''
},
methods:{
handleBtnClick:function(){
this.list.push(this.inputValue),
this.inputValue=''
}
}
})
</script>
</html>