vue的相关配置在系列文章的第一部分中进行了配置。
此处主要使用的标签为:
在配置好vue的环境之后,只用创建html即可。此处为空项目。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta http-equiv="X-UA-Computible" content="ie=edge">
<title>记事本demo</title>
</head>
<body>
<!-- 主体区域 -->
<section id="todoapp">
<!-- 输入区域 -->
<header class="header">
<h1>记事本</h1>
<!-- autofocus 光标定位 -->
<input autofocus="autofocus" autocomplete="off" placeholder="请输入任务">
</header>
<!-- 列表区域 -->
<section>
<ul>
<li>
<div>
<span>1</span>
<label>写代码</label>
<button>X</button>
</div>
</li>
</ul>
</section>
<!-- 统计和清空 -->
<footer >
<span> 1 </span>
<button>Clear</button>
</footer>
</section>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.7/dist/vue.js"></script>
<script>
</script>
</body>
</html>
主要在以下两部分添加代码:
1 输入区域中: 添加add方法。
2 script中: 添加对应的add方法,使用put放入inputvalue元素。
<!-- 输入区域 -->
<header class="header">
<h1>记事本</h1>
<!-- autofocus 光标定位 -->
<input v-model="inputValue" v-on:keyup.enter="add" autofocus="autofocus" autocomplete="off" placeholder="请输入任务">
</header>
<script>
var app = new Vue({
el:"#todoapp",
data:{
list:["写代码","吃饭","睡觉"],
inputValue:"好好学习,天天向上"
},
methods: {
//增加方法
add:function(){
this.list.push(this.inputValue);
}
})
</script>
主要在以下两部分添加代码:
1 列表区域中: 对list进行遍历,之后在button中绑定remove方法。
2 script中: 添加对应的remove方法,使用index删除对应元素的索引值。
<!-- 列表区域 -->
<section>
<ul>
<li v-for="(item,index) in list">
<div>
<span>{{index+1}}</span>
<label>{{item}}</label>
<button v-on:click="remove(index)">X</button>
</div>
</li>
</ul>
</section>
<script>
var app = new Vue({
el:"#todoapp",
data:{
list:["写代码","吃饭","睡觉"],
inputValue:"好好学习,天天向上"
},
methods: {
//删除方法
remove:function(index){
this.list.splice(index,1);
}
}
})
</script>
统计只用显示list的长度即可。
清空功能分为以下两步:
1 统计和清空区域中: 对button 进行方法绑定。
2 script中: 添加对应的clear方法,直接将list的数组设为[]即可。
<!-- 统计和清空 -->
<footer >
<span> {{list.length}} </span>
<button v-on:click="clear">Clear</button>
</footer>
<script>
var app = new Vue({
el:"#todoapp",
data:{
list:["写代码","吃饭","睡觉"],
inputValue:"好好学习,天天向上"
},
methods: {
//清除数据
clear:function(){
this.list = [];
}
}
})
</script>
在统计和清空中加入判断条件:list.length>0。
<!-- 统计和清空 -->
<footer >
<span v-show="list.length>0"> {{list.length}} </span>
<button v-if="list.length>0" v-on:click="clear">Clear</button>
</footer>
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta http-equiv="X-UA-Computible" content="ie=edge">
<title>记事本demo</title>
</head>
<body>
<!-- 主体区域 -->
<section id="todoapp">
<!-- 输入区域 -->
<header class="header">
<h1>记事本</h1>
<!-- autofocus 光标定位 -->
<input v-model="inputValue" v-on:keyup.enter="add" autofocus="autofocus" autocomplete="off" placeholder="请输入任务">
</header>
<!-- 列表区域 -->
<section>
<ul>
<li v-for="(item,index) in list">
<div>
<span>{{index+1}}</span>
<label>{{item}}</label>
<button v-on:click="remove(index)">X</button>
</div>
</li>
</ul>
</section>
<!-- 统计和清空 -->
<footer >
<span v-show="list.length>0"> {{list.length}} </span>
<button v-if="list.length>0" v-on:click="clear">Clear</button>
</footer>
</section>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.7/dist/vue.js"></script>
<script>
var app = new Vue({
el:"#todoapp",
data:{
list:["写代码","吃饭","睡觉"],
inputValue:"好好学习,天天向上"
},
methods: {
//增加方法
add:function(){
this.list.push(this.inputValue);
},
//删除方法
remove:function(index){
this.list.splice(index,1);
},
//清除数据
clear:function(){
this.list = [];
}
}
})
</script>
</body>
</html>