转前端的第二天
Vue写一个记事本
记事本应该有如下功能
1.增加一条待办事项
2.待办事项定时任务 (未完成)
3.添加待办事项完成情况 (未完成)
4.删除待办事项
5.修改待办事项 (未完成)
6.待办事项的权重 (未完成)
7.待办事项完成后的奖励 (未完成)
ok,今天是国庆的第二天,昨天打了一整天的雀魂,确实是有点无聊,无聊就想了解一下前端的框架,把这个系列的博客叫做转前端的第二天系列吧。
新增一条待办事项
待办事项会有多个的情况,需要用v-for来生成列表结构,同时需要用v-model来双向绑定数据,为了提高用户的体验,用v-on.enter来添加数据。
删除待办
将data数组元素移除,调用splice(index,1)来实现。
补充:$emit
1、父组件可以使用 " : "把数据传给子组件,子组件用props接收。
2、$emit子组件调用父组件的方法并传递数据
使用
Object.freeze()
,这会阻止修改现有的 property,也意味着响应系统无法再追踪变化。
页面跳转:
HelloWorld
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>记事本</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>
<section id="todoapp">
<!-- 输入框 -->
<header>
<h1>记事本</h1>
<input v-model="addTask" @keyup.enter="add" autofocus="autofocus" autocomplete="off" placeholder="请添加待办事项">
<button @click="add">添加</button>
</header>
<!-- 列表区域 -->
<section>
<ul>
<li v-for="(item,index) in list" >
<div>
<span>{{index+1}}.</span>
<label>{{item}}</label>
<button @click="remove(index)">移除</button>
</div>
<!-- <button></button> -->
</li>
</ul>
</section>
</section>
<script>
var app = new Vue({
el:"#todoapp",
data:{
addTask:"",
list:["学vue","写后端","打游戏"],
},
methods:{
remove:function(index){
this.list.splice(index,1);
},
add:function(){
this.list.push(this.addTask);
this.addTask = null;
}
}
})
</script>
</body>
</html>
大概长这样婶的
总结:涉及到的知识点:数据的双向绑定,循环遍历数组元素并渲染,事件绑定与事件限制。