赞
踩
时间管理永远都是提升工作和学习效率的必备法门,你在平时的工作学习中是否也有做计划和管理计划的习惯呢?
本题需要在已提供的基础项目中使用Vue.jS知识实现一个简易的任务管理器。
开始答题前,需要先打开本题的项目代码文件夹,目录结构如下:
其中:
·css/style.css是页面样式文件。
·img/icon.png是页面所需小图标。
·js/vue.js是版本为2.x的Vue.js框架。
·index.html是页面布局即逻辑编码文件。
在浏览器中预览index.html页面效果如下:
当前显示仅有静态布局,并未实现具体功能。
请在index.html文件中使用默认提供的DOM结构(即基础项目提供的DOM结构和指定id不能改变),并用ue2.x语法实现任务管理器功能。
具体需求如下:
1.页面加载后默认显示“暂无数据”。
2.在输入框中输入内容并点击“确认”按钮后,将输入内容添加到任务列表。
3.新增任务添加在已有任务后面。
4.点击每条任务右侧的“删除”图标该任务会从任务列表中移除。
5.底部“总数”右侧显示当前任务列表中的数量。
6.点击底部的“清除”将清空任务列表中的数据,任务列表处恢复“暂无数据”的默认显示。
最终效果【请通过浏览器查看素材文件夹中的effect…gif】
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>任务管理器</title> <link type="text/css" href="css/style.css" rel="stylesheet" /> </head> <body> <div id="box"> <div class="head"> <h2>Todos</h2> <p>罗列日常计划,做一个时间管理大师!</p> <div class="input"> <span>内容</span> <input type="text" placeholder="请输入你要做的事" v-model="text" /> <span id="add" @click="add">确认</span> </div> </div> <ul class="list"> <li v-if="!list.length">暂无数据</li> <li v-else v-for="(item,index) in list" :key="index"> <!-- 前面的序号 --> <span class="xh">{{index+1}}</span> <!-- 列表内容 --> <span>{{item}}</span> <!-- 删除按钮 --> <span class="qc" @click="remove(index)"></span> </li> <!-- <li> <span class="xh">2</span> <span>吃饭</span> <span class="qc"></span> </li> <li> <span class="xh">3</span> <span>睡觉</span> <span class="qc"></span> </li> --> <li v-if="list.length"> <b> 总数:{{list.length}} </b> <b id="clear" @click="clear">清除</b> </li> </ul> </div> <script src="js/vue.js"></script> <script> var top = new Vue({ el: "#box", // 在此处补全代码,实现所需功能 data: { list: [], text: '' }, methods: { } }); </script> </body> </html>
<script> var top = new Vue({ el: "#box", // 在此处补全代码,实现所需功能 data: { list: [], text: '' }, methods: { add(){ this.list.push(this.text) this.text='' }, remove(index){ this.list.splice(index) }, clear(){ this.list=[] } } }); </script>
读题可知补全添加、移除列表、清空列表这三个方法就可以了。主要是vue.js的运用和列表的方法使用。
Vue的数据响应式特性构建处理列表的各种方法。这里提及的是Vue中与列表操作紧密相关的几个方面:
列表渲染(v-for
):
使用
v-for
指令根据数据数组动态渲染列表元素。
Html
<ul>
<li v-for="(item, index) in list" :key="item.id">
{{ item.value }}
</li>
</ul>
在这个例子中,list
是一个数组,v-for
会遍历数组并为每个元素创建一个列表项。
Vue实例中的数组方法:
push()
: 向数组末尾添加一个或多个元素。pop()
: 删除数组最后一个元素并返回该元素。shift()
: 删除数组第一个元素并返回该元素。unshift()
: 向数组开头添加一个或多个元素,并返回新的长度。splice()
: 改变数组内容,可以从数组中添加或删除项目。sort()
: 对数组进行排序。reverse()
: 反转数组的元素顺序。过滤、映射、重组等操作:
.filter()
、.map()
、.reduce()
等)对Vue实例中的数组进行操作,但在改变数组时,需要确保使用上述变异方法以触发视图更新。计算属性与侦听器:
computed
)。watch
)。例如,在Vue组件中可能会有这样一段代码用来监听并处理列表的变化:
Javascript
export default { data() { return { originalList: [...] }; }, computed: { filteredList() { return this.originalList.filter(item => item.isActive); } }, watch: { originalList(newList) { // 当原始列表发生变化时执行某些逻辑 } } }
computed: {
filteredList() {
return this.originalList.filter(item => item.isActive);
}
},
watch: {
originalList(newList) {
// 当原始列表发生变化时执行某些逻辑
}
}
}
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。