【轻松开发微信小程序】实现用户增删改查功能

本文涉及的产品
函数计算FC,每月15万CU 3个月
应用实时监控服务-应用监控,每月50GB免费额度
云原生网关 MSE Higress,422元/月
简介: 本篇文章主要介绍如何从零开始开发微信小程序,并以实现用户增删改查功能为例,详细讲解了小程序的目录结构、项目创建、编码等方面。通过本文的学习,读者可以了解到微信小程序开发的基本流程和常见操作,为深入学习和实践提供了基础。

前言

上一篇博客中我们学习了什么是小程序以及开发一个小程序的具体步骤。

在本篇博客中,我们来开发一个用户列表增删改查功能的完整流程,包括微信小程序项目目录、项目创建、编码、实现功能以及最终效果的展示。

image.png

创建微信小程序项目

首先,在微信开发者工具中,选择新建小程序项目,填写小程序名称、AppID以及项目路径,点击确定即可创建微信小程序项目。

创建项目目录结构

在创建好的微信小程序项目中,创建以下目录结构:

- pages/
  - index/
    - index.js
    - index.json
    - index.wxml
    - index.wxss
  - edit/
    - edit.js
    - edit.json
    - edit.wxml
    - edit.wxss
- app.js
- app.json
- app.wxss

编写首页页面

在pages目录下,创建一个index目录,用于存放首页页面相关文件。在index目录下,创建以下文件:

- index.js
- index.json
- index.wxml
- index.wxss

在index.js中,编写以下代码:

// index.js
Page({
   
  data: {
   
    listData: []
  },
  onLoad: function () {
   
    // 页面加载时,从本地缓存中获取数据
    const listData = wx.getStorageSync('listData') || []
    this.setData({
   
      listData
    })
  },
  gotoAdd: function () {
   
    // 跳转到添加页面
    wx.navigateTo({
   
      url: '/pages/edit/edit',
    })
  },
  gotoEdit: function (e) {
   
    // 跳转到编辑页面
    const id = e.currentTarget.dataset.id
    wx.navigateTo({
   
      url: `/pages/edit/edit?id=${
     id}`,
    })
  },
  deleteData: function (e) {
   
    // 删除数据
    const id = e.currentTarget.dataset.id
    const listData = wx.getStorageSync('listData') || []
    const index = listData.findIndex(item => item.id === Number(id))
    listData.splice(index, 1)
    wx.setStorageSync('listData', listData)
    this.setData({
   
      listData
    })
  }
})

在index.wxml中,编写以下代码:

<!-- index.wxml -->
<view class="container">
  <button class="add-btn" bindtap="gotoAdd">添加</button>
  <view class="list">
    <block wx:for="{
    {listData}}" wx:key="id">
      <view class="item" bindtap="gotoEdit" data-id="{
    {item.id}}">
        <text class="text">{
  {item.text}}</text>
        <text class="delete" bindtap="deleteData" data-id="{
    {item.id}}">删除</text>
      </view>
    </block>
  </view>
</view>

在index.wxss中,编写以下代码:

/* index.wxss */
.container {
   
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 20rpx;
}

.add-btn {
   
  width: 80%;
  background-color: #4caf50;
  color: #fff;
  border-radius: 5rpx;
  padding: 10rpx;
  text-align: center;
  margin-bottom: 20rpx;
}

.list {
   
  width: 80%;
}

.item {
   
  display:flex;
  justify-content: space-between;
  align-items: center;
  padding: 10rpx;
  background-color: #fff;
  border-radius: 5rpx;
  margin-bottom: 10rpx;
  box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.2);
}

.text {
   
  font-size: 16rpx;
}

.delete {
   
color: red;
font-size: 14rpx;
}

在index.json中,编写以下代码:

{
   
  "navigationBarTitleText": "首页"
}

编写编辑页面

在pages目录下,创建一个edit目录,用于存放编辑页面相关文件。在edit目录下,创建以下文件:

- edit.js
- edit.json
- edit.wxml
- edit.wxss

在edit.js中,编写以下代码:

// edit.js
Page({
   
  data: {
   
    id: 0,
    text: ''
  },
  onLoad: function (options) {
   
    if (options.id) {
   
      // 如果是编辑页面,从本地缓存中获取数据
      const listData = wx.getStorageSync('listData') || []
      const data = listData.find(item => item.id === Number(options.id))
      this.setData({
   
        id: data.id,
        text: data.text
      })
    }
  },
  handleInput: function (e) {
   
    // 监听输入框输入事件
    this.setData({
   
      text: e.detail.value
    })
  },
  handleSave: function () {
   
    // 保存数据
    const listData = wx.getStorageSync('listData') || []
    let {
    id, text } = this.data
    if (id) {
   
      // 如果是编辑数据,修改原有数据
      const index = listData.findIndex(item => item.id === Number(id))
      listData[index] = {
   
        id: Number(id),
        text
      }
    } else {
   
      // 如果是新增数据,生成新的id,并添加到列表中
      id = listData.length ? listData[listData.length - 1].id + 1 : 1
      listData.push({
   
        id,
        text
      })
    }
    wx.setStorageSync('listData', listData)
    wx.navigateBack()
  }
})

在edit.wxml中,编写以下代码:

<!-- edit.wxml -->
<view class="container">
  <input class="input" type="text" placeholder="请输入内容" value="{
    {text}}" bindinput="handleInput" />
  <button class="save-btn" bindtap="handleSave">保存</button>
</view>

在edit.wxss中,编写以下代码:

/* edit.wxss */
.container {
   
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 20rpx;
}

.input {
   
  width: 80%;
  height: 80rpx;
  font-size: 16rpx;
  border-radius: 5rpx;
  padding: 20rpx;
  background-color: #fff;
  box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.2);
  margin-bottom: 20rpx;
}

.save-btn {
   
  width: 80%;
  background-color: #4caf50;
  color: #fff;
  border-radius: 5rpx;
  padding: 10rpx
}

实现增删改查功能

在index.js中,添加以下代码:

// index.js
Page({
   
  data: {
   
    listData: []
  },
  onShow: function () {
   
    // 页面显示时,从本地缓存中获取数据,并更新数据
    const listData = wx.getStorageSync('listData') || []
    this.setData({
   
      listData
    })
  },
  handleAdd: function () {
   
    // 点击新增按钮,跳转到编辑页面
    wx.navigateTo({
   
      url: '/pages/edit/edit'
    })
  },
  handleEdit: function (e) {
   
    // 点击列表项,跳转到编辑页面,并携带id参数
    const id = e.currentTarget.dataset.id
    wx.navigateTo({
   
      url: `/pages/edit/edit?id=${
     id}`
    })
  },
  handleDelete: function (e) {
   
    // 点击删除按钮,删除该项数据,并更新本地缓存
    const id = e.currentTarget.dataset.id
    const listData = wx.getStorageSync('listData') || []
    const index = listData.findIndex(item => item.id === Number(id))
    listData.splice(index, 1)
    wx.setStorageSync('listData', listData)
    this.setData({
   
      listData
    })
  }
})

在index.wxml中,修改以下代码:

<!-- index.wxml -->
<view class="container">
  <button class="add-btn" bindtap="handleAdd">新增</button>
  <view class="list">
    <block wx:for="{
    {listData}}" wx:key="id">
      <view class="list-item" bindtap="handleEdit" data-id="{
    {item.id}}">
        <text class="text">{
  {item.text}}</text>
        <text class="delete" bindtap="handleDelete" data-id="{
    {item.id}}">删除</text>
      </view>
    </block>
  </view>
</view>

至此,一个简单的小程序用户列表增删改查功能就完成了。

展示最终效果

使用微信开发者工具打开项目,点击编译运行按钮,即可看到最终效果。

总结

本文介绍了开发微信小程序所需的基本知识,包括微信小程序的目录结构、项目创建、编码等方面。并以一个简单的用户列表增删改查功能为例,演示了如何在小程序中实现常见的增删改查操作。

需要注意的是,本文只是一个入门级别的示例,实际的小程序开发中可能会涉及更多的技术和知识,例如网络请求、数据绑定、组件开发等等。如果想要深入了解微信小程序开发,建议多阅读官方文档和相关书籍,积累更多的实战经验。

希望本文对初学者有所帮助,如果有任何问题或建议,欢迎留言讨论。


✍创作不易,求关注😄,点赞👍,收藏⭐️

相关文章
|
7天前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
2059 13
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
12天前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
124 12
|
26天前
|
小程序 前端开发 关系型数据库
基于Uniapp+php校园小程序,校园圈子论坛系统功能,校园跑腿二手交流功能设计
校园圈子论坛及综合服务平台集成了校园跑腿、兼职信息、外卖团购、闲置交换、租赁服务、表白墙等多功能模块,提供一站式校园生活解决方案。系统采用uniapp前端和PHP后端开发,支持多城市、多学校切换,配备分站式后台管理,确保稳定性和安全性。通过融云IM SDK实现即时通讯功能,增强用户互动与粘性。适用于大学校园、城市及社区圈子,满足多样化需求,提升便捷体验。
|
24天前
|
小程序 前端开发 关系型数据库
uniapp跨平台框架,陪玩系统并发性能测试,小程序源码搭建开发解析
多功能一体游戏陪练、语音陪玩系统的开发涉及前期准备、技术选型、系统设计与开发及测试优化。首先,通过目标用户分析和竞品分析明确功能需求,如注册登录、预约匹配、实时语音等。技术选型上,前端采用Uni-app支持多端开发,后端选用PHP框架确保稳定性能,数据库使用MySQL保证数据一致性。系统设计阶段注重UI/UX设计和前后端开发,集成WebSocket实现语音聊天。最后,通过功能、性能和用户体验测试,确保系统的稳定性和用户满意度。
|
30天前
|
小程序 IDE PHP
圈子源码如何打包生成App小程序/开发一个圈子系统软件所需要的费用体现在哪里?
将PHP源码打包成App的过程涉及多个步骤和技术选择。以圈子源码为例,首先明确需求,确定App功能和目标用户群体,并根据需求开发小程序页面,如用户注册、圈子列表等。源码准备阶段确保源码适用于小程序开发,环境配置需安装IDE(如微信开发者工具)及依赖库。最后在IDE中打包小程序并上传至管理平台,通过审核后发布。费用方面,模板开发成本较低,定制开发则更高,具体取决于需求复杂度和第三方服务费用。
73 0
|
2月前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
29天前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
26 0
|
2月前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
2月前
|
小程序 安全 网络安全
清晰易懂!陪玩系统源码搭建的核心功能,陪玩小程序、陪玩app的搭建步骤!
陪玩系统源码包含多种约单方式、实时语音互动、直播间与聊天室、大神申请与抢单、动态互动与社交及在线支付与评价等核心功能。搭建步骤包括环境准备、源码上传与解压、数据库配置、域名与SSL证书绑定、伪静态配置及后台管理。注意事项涵盖源码安全性、二次开发、合规性和技术支持。确保平台安全、合规并提供良好用户体验是关键。
|
2月前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。