Vue待办事项(组件,模块化)
//html页面代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
* {
padding: 0;
margin: 0;
}
ul,
ol {
list-style: none;
}
.header {
width: 400px;
margin: 0px auto;
margin-top: 50px;
box-shadow: 1px 1px 5px 5px;
}
.input {
padding: 10px;
height: 30px;
display: flex;
}
.input input{
padding-left: 10px;
flex: 1;
}
.input button{
width: 60px;
height: 30px;
}
.text {
padding: 10px;
display: flex;
}
.text .list {
flex: 1;
text-align: center;
cursor: pointer;
}
/* .text div:nth-child(1){
background-color: black;
color: white;
} */
.text .active {
background-color: black;
color: white;
}
.cart {
padding: 10px;
}
.cart li {
height: 20px;
display: flex;
margin-bottom: 10px;
}
.cart li div {
flex: 1;
padding-left: 10px;
}
.cart li input {
height: 20px;
width: 20px;
}
.clear {
padding: 10px;
display: flex;
}
.clear div {
flex: 1;
}
</style>
</head>
<body>
<div class="header" id="app">
<my-input @add="addcartin"></my-input>
<my-text :type="type" @blue="tab" :computetode="computetode" :uncomputetode="uncomputetode" :arr="arr"></my-text>
<my-cart :list=" currentarr" @remove="remove" ></my-cart>
<my-clear @clear="removeall"></my-clear>
</div>
<script type="module">
import { createApp } from './lib/vue.esm-browser.js'
import AddOptions from './components/tode-input.js'
import AddText from './components/tode-text.js'
import AddCart from './components/tode-cart.js'
import AddFooter from './components/tode-footer.js'
var itemid=1
const app = createApp({
data() {
return {
arr:[],
type:'all',
currentarr:[]
}
},
computed: {
computetode() {
return this.arr.filter(item => item.complate == true)
},
uncomputetode() {
return this.arr.filter(item => item.complate == false)
},
},
methods:{
addcartin(title){
this.arr.push({
id:itemid++,
complate:false,
title
})
},
removeall(data){
this.arr=data
},
remove(id){
this.arr=this.arr.filter(item=>item.id!=id)
},
tab(data){
this.type=data
}
},
watch: {
uncomputetode() {
if (this.type == 'every') {
this.currentarr = this.uncomputetode
} else if (this.type == 'some') {
this.currentarr = this.computetode
} else {
this.currentarr =this.arr
}
},
type: {
handler(newtype) {
console.log(newtype)
switch (newtype) {
case 'all':
this.currentarr = this.arr
break
case 'some':
this.currentarr = this.computetode
break
case 'every':
this.currentarr = this.uncomputetode
break
}
},
immediate: true,
},
}
})
app.component('MyInput', AddOptions)
app.component('MyText',AddText)
app.component('MyCart',AddCart)
app.component('MyClear',AddFooter)
app.mount('#app')
</script>
</body>
</html>
//tode-cart.js代码
var AddCart={
template:`
<div class="cart">
<ul>
<li v-for="item in list">
<input type="checkbox" v-model="item.complate" :key="item.id"/>
<div>{{item.title}}</div>
<button @click="remove(item.id)">删除</button>
</li>
</ul>
</div>
`,
props: ['list'],
methods:{
remove(id){
this.$emit('remove',id)
}
}
}
export default AddCart
//tode-footer.js代码
var AddFooter={
template:`
<div class="clear">
<div></div>
<button @click="removeall()">清除</button>
</div>
`
,
methods:{
removeall(data){
this.$emit('clear',[])
}
},
}
export default AddFooter
//tode-input.js代码
var AddOptions={
template:`
<div class="input">
<input type="text" placeholder="请输入" ref="inputref" v-model="message"/>
<button @click="haddleadd()">添加</button>
</div>
`,
data(){
return{
message:''
}
},
methods:{
haddleadd(data){
this.$emit("add",this.message)
}
}
}
export default AddOptions
//tode-text.js代码
var AddText={
template:`
<div class="text">
<div class="list" :class="type=='all'? 'active' : '' " @click="check('all')">所有待办事项({{arr.length}})
</div>
<div class="list" :class="type=='some'? 'active' : '' " @click="check('some')">
已完成({{computetode.length}})</div>
<div class="list" :class="type=='every'? 'active' : '' " @click="check('every')">
未完成({{uncomputetode.length}})</div>
</div>
`,
props:['type','arr','uncomputetode','computetode'],
methods:{
check(item){
this.$emit('blue',item)
}
}
}
export default AddText
相关文章:
Vue待办事项(组件,模块化)
//html页面代码 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> <style> * { padding: 0; margin: 0; }…...
Vue中的组件
在应用程序的开发中,组件是不可缺少的。在Vue的使用中,同样也会用到组件。 vue组件的一般知识点: 1、组件的名字唯一; 2、组件以Html形式书写; 3、组件可以复用; 4、组件可以嵌套&…...
svg矢量图标在wpf中的使用
在wpf应用程序开发中,为支持图标的矢量缩放,及在不同分辨率下界面中图标元素的矢量无损缩放,所以常常用到svg图标,那么如果完 美的将svg图标运用到wpf日常的项目开发中呢,这里分享一下我的个人使用经验和详细步骤。 步…...
如何在云端加速缓存构建
缓存是指将某类数据存储起来以便以后重复使用的过程,它的运用在开发场景中非常普遍。类似于你习惯把最常用的调料放在厨房台面上,而不是橱柜里,这样你在准备大餐时就可以轻松取用。 但对于一个更为技术性、更精确的用例,比如像谷…...
JavaWeb-Cookie与Session
一、概念 是否还记得我们在HTTP概念中提到:HTTP的一大特点是无状态,这意味着多次HTTP请求之间是无法共享数据的。而在请求之间共享一些数据又是我们期望达到的效果。(例如登录的记住我功能)于是便有了会话跟踪技术,而…...
ZABBIX根据IP列表,主机描述,或IP子网批量创建主机的维护任务
有时候被ZABBIX监控的主机可能需要关机重启等维护操作,为了在此期间不触发告警,需要创建主机的维护任务,以免出现误告警 ZABBIX本身有这个API可供调用(不同版本细节略有不同,本次用的ZABBIX6.*),实现批量化建立主机的维护任务 无论哪种方式(IP列表,主机描述,或IP子网)创建维护…...
PMIS_ENT_STD
...
32 登录页组件
效果演示 实现了一个登录页面的样式,包括一个容器、左侧和右侧部分。左侧部分是一个背景图片,右侧部分是一个表单,包括输入框、复选框、按钮和忘记密码链接。整个页面的背景色为白色,容器为一个圆角矩形,表单为一个半透…...
Docker(一)简介和基本概念:什么是 Docker?用它会带来什么样的好处?
作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 一、简介 本章将带领你进入 Docker 的世界。 什么是 Docker? 用它会带来什么样的好处? 好吧,让我们带…...
【Linux】进程的概念 进程状态 进程优先级
Content 一、什么是进程1. 进程的概念2. 进程的描述 - 进程控制块(PCB)3. Linux下的进程 二、进程状态1. 教科书中的进程状态运行状态阻塞状态挂起状态 2. Linux下的进程状态R(running)- 运行状态S(sleeping) - 睡眠状…...
Go语言热重载和优雅地关闭程序
Go语言热重载和优雅地关闭程序 我们有时会因不同的目的去关闭服务,一种关闭服务是终止操作系统,一种关闭服务是用来更新配置。 我们希望优雅地关闭服务和通过热重载重新加载配置,而这两种方式可以通过信号包来完成。 1、代码实现 package…...
Python实现两个列表相加的方法汇总
1. 使用 “” 运算符 通过 “” 运算符将两个列表相加,得到一个新的列表。例如: list1 [1, 2, 3] list2 [4, 5, 6] result list1 list2 print(result) # [1, 2, 3, 4, 5, 6]2. 使用 extend 方法 使用 extend 方法将一个列表中的元素逐个添加到另…...
debian12.4配置
文章目录 debian12.4配置概述笔记将非root用户添加到sudo组更换国内源配置ssh的客户端访问END debian12.4配置 概述 在虚拟机中装了一个debian12.4, 想配置ssh客户端连接, 出了问题. 配置乱了, 还好长了个心眼, 做了快照. 发现2个问题: debian12.4默认安装完, 有ssh, 先检查…...
linux切换root用户su - root和su root的区别
这里说一下login shell和 no login shell的区别 通过tty客户端登陆的shell就是login shell,通过在图形界面使用ctrlshiftt的方式新建的shell是no login shell login shell 主要读取两个配置文件/etc/profile和~/.bash_profile no login shell 读取的文件和顺序为&am…...
SQL Server Management Studio创建数据表
文章目录 一、建表注意事项1.1 数据类型1.2 建立数据表的基本SQL语法 二、实例说明2.1 创建数据表2.2 实例2 三、标识列和主键示例: 一、建表注意事项 1.1 数据类型 可以看这个去了解数据类型: 1.2 建立数据表的基本SQL语法 建立数据表的基本 SQL 语…...
【AI的未来 - AI Agent系列】【MetaGPT】4.1 细说我在ActionNode实战中踩的那些坑
文章目录 1. MetaGPT 0.5.2 版本的坑1.1 坑一:cannot import name "ActionNode" from "metagpt.actions.action"1.2 坑二:simple_fill 没有参数 schema1.3 坑三:ActionNode一直在循环执行, 2. 升级成 MetaGP…...
Android学习(五):常用控件
Android学习(五):常用控件 常用控件 TextViewEditTextButtonRadioButtonImageView 1、TextView控件 1.1、简介 TextView是用于显示文字(字符串)的控件,可在代码中通过设置属性改变文字的大小、颜色、样式等功能。 1.2、示例…...
基于YOLOv8的学生课堂行为检测,引入BRA注意力和Shape IoU改进提升检测能力
💡💡💡本文摘要:介绍了学生课堂行为检测,并使用YOLOv8进行训练模型,以及引入BRA注意力和最新的Shape IoU提升检测能力 1.SCB介绍 摘要:利用深度学习方法自动检测学生的课堂行为是分析学生课堂表…...
【前后端分离与不分离的区别】
Web 应用的开发主要有两种模式: 前后端不分离 前后端分离 理解它们的区别有助于我们进行对应产品的测试工作。 前后端不分离 在早期,Web 应用开发主要采用前后端不分离的方式,它是以后端直接渲染模板完成响应为主的一种开发模式。以前后端不…...
ubuntu-20.04.6-live-server-amd64安装教程-完整版
简介 Ubuntu 20.04.6 Live Server AMD64 安装教程 - 完整版" 提供了详细的指南,旨在帮助用户在使用 AMD64 架构的服务器上安装 Ubuntu 20.04.6 Live Server 版本。该教程包含全面的步骤和详细说明,使用户能够顺利完成整个安装过程,建立…...
别再乱删C盘文件了!手把手教你用任务管理器和命令行精准清理流氓软件残留
别再乱删C盘文件了!手把手教你用任务管理器和命令行精准清理流氓软件残留 每次打开电脑看到C盘飘红的存储空间,不少用户的第一反应就是打开资源管理器,对着那些看不懂的文件夹和文件按下删除键。这种简单粗暴的操作轻则导致软件异常…...
导师认可的AI论文软件榜单(2026 最新实测)
基于学术严谨性、写作效率、功能全面性及用户反馈,以下是2026年最新实测中表现突出的AI论文写作工具权威榜单,按综合使用价值从高到低排列,并附上各工具的核心优势与适用人群。🏆 第一梯队:全流程学术解决方案…...
从账单明细看 Taotoken 按 Token 计费模式带来的成本控制优势
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从账单明细看 Taotoken 按 Token 计费模式带来的成本控制优势 1. 成本感知的起点:账单明细结构 对于使用大模型 API 的…...
7天掌握FontForge:免费开源字体编辑器的完整使用指南
7天掌握FontForge:免费开源字体编辑器的完整使用指南 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 你是否曾梦想设计属于自己的字体?无论是…...
Node.js框架深度解析:从Express到Nest.js,如何选择最适合你的Web开发框架?
1. 项目概述:为什么Node.js框架值得你花时间研究?如果你是一名Web开发者,或者正在向这个方向转型,那么“Node.js框架”这个词组对你来说一定不陌生。但面对市面上林林总总的框架,从Express、Koa到Nest.js、Fastify&…...
YOLOv5实战解析——激活函数的选择与调优
1. 激活函数在YOLOv5中的核心作用 第一次接触YOLOv5时,我被它的检测精度惊艳到了。但真正让我困惑的是:为什么同样的网络结构,换个激活函数效果就天差地别?后来在调试一个工业质检项目时,我才彻底明白激活函数的重要性…...
效率翻倍!用VSCode和SumatraPDF打造你的LaTeX论文写作‘双向传送门’
效率翻倍!用VSCode和SumatraPDF打造你的LaTeX论文写作‘双向传送门’ 学术写作从来不是一件轻松的事,尤其是当你需要处理大量公式、图表和参考文献时。传统的LaTeX写作流程往往需要在编辑器、编译器和PDF阅读器之间反复切换,这种割裂的体验让…...
YOLO-ONNX-Java分布式推理架构设计与实现
YOLO-ONNX-Java分布式推理架构设计与实现 引言:单机推理的性能瓶颈 在实际的AI视觉识别项目中,随着业务规模的扩大,单机推理往往面临以下挑战: 并发处理能力有限:单台服务器无法同时处理大量视频流GPU资源利用率低&…...
CANN/catlass精度分析基础
精度分析基础 【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass 写在前面 该文档主要说明CATLASS样例开发中精度分析的基础知识,包括样例精度…...
人工智能术语库:2442个专业AI词汇一站式查询指南
人工智能术语库:2442个专业AI词汇一站式查询指南 【免费下载链接】Artificial-Intelligence-Terminology-Database A comprehensive mapping database of English to Chinese technical vocabulary in the artificial intelligence domain 项目地址: https://gitc…...
