小程序入坑记:TodoList

简介: 小程序入坑记:TodoList

小程序数据绑定渲染视图使数据与视图的关系显得很清晰

wxml:

<!--pages/todoList/toduList.wxml-->
<input class='addItem' placeholder-style='font-size:16px;' placeholder='输入事项' bindinput='changeStr' value='{{addStr}}'></input>
<button class='add' type='primary' bindtap='addTodo'>提交</button>
<view class='listBox'>
  <view class='listItem' wx:for="{{addList}}" wx:key='item.id'>
    <text class='content'>{{item.content}}</text>
    <text class='time'>{{item.time}}</text>
    <button class='finish' disabled="{{item.finish}}" bindtap='tapHandler' data-id='{{item.id}}'>{{item.finish?'已完成':'完成'}}</button>
    <button class='del' type='warn' bindtap='tapHandler' data-id='{{item.id}}'>删除</button>
  </view>
</view>

wxss:

.addItem {
  position: fixed;
  top: 0;
  left: 0;
  width: 550rpx;
  height: 60rpx;
  background: #ccc;
  padding-left: 30rpx;
  border-radius: 10rpx;
  display: inline-block;
  z-index: 10;
}
.add {
  position: fixed;
  top: 0;
  right: 0;
  height: 60rpx;
  line-height: 60rpx;
  display: inline-block;
  width: 150rpx;
  font-size: 30rpx;
  z-index: 10;
}
.content {
  display: inline-block;
  /* background: lightcoral; */
  width: 250rpx;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}
.time {
  /* background: lightblue; */
  vertical-align: middle;
}
.listBox {
  margin-top: 60rpx;
}
.listItem {
  font-size: 14px;
  padding-top: 20rpx;
}
.del, .finish {
  display: inline-block;
  font-size: 22rpx;
  width: 100rpx;
  height: 60rpx;
  line-height: 60rpx;
  vertical-align: middle;
}

js:

// pages/todoList/toduList.js
Page({
  data: {
    addStr: '', //输入的内容,将该值绑定到input的value中
    addList: [] //事项列表
  },
  changeStr(e) {
    this.setData({
      addStr: e.detail.value //当用户输入值时,修改当前事项内容
    })
  },
  addTodo(e) {
    var str = this.data.addStr.trim() //去除字符前后空格
    if (str.length === 0) {
      return;
    }
    var addList = this.data.addList;
    var date = new Date() //生成提交的时间
    var time = date.toLocaleString(); //转换为标准时间
    var obj = { //每个事项的内容
      id: addList.length, //将id设为数组的长度,方便后续操作
      content: str, //事项内容
      time: time, //提交时间
      finish: false //是否已完成
    }
    addList.push(obj) //将该事项添加到事项列表中
    this.setData({ //刷新列表,置空input内容
      addList,
      addStr: ''
    })
  },
  tapHandler(e) { //用户点击完成或删除时触发
    var addList = this.data.addList
    var id = e.target.dataset.id //获取时间传递的id值
    var type = e._relatedInfo.anchorTargetText //获取点击种类:删除或完成
    for (let i = 0; i < addList.length; i++) { //遍历列表
      if (addList[i].id === id) {
        switch (type) {
          case '完成':
            addList[i].finish = true; //点击完成时执行
            break;
          case '删除':
            addList.splice(i, 1); //点击删除时执行
            break;
          default:
            break;
        }
        this.setData({ //刷新列表
          addList
        })
      }
    }
  }
})
相关文章
|
6月前
|
小程序
微信小程序:免费翻页时钟和todolist
微信小程序:免费翻页时钟和todolist
微信小程序:免费翻页时钟和todolist
|
6月前
|
小程序
微信小程序实现一个todolist这样的小demo
微信小程序实现一个todolist这样的小demo
|
28天前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
186 3
|
1月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
44 0
微信小程序更新提醒uniapp
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
104 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
3月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
99 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
3月前
|
存储 小程序 JavaScript
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
62 7
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
81 7
|
3月前
|
小程序 前端开发 安全

热门文章

最新文章