当前位置:网站首页 >微信小程序 > 正文

轻松打造实用的小程序云开发便签

潇湘 潇湘 . 发布于 2025-05-01 18:13:28 166 浏览

在快节奏的生活和工作中,便签成为了我们记录灵感、待办事项、重要信息等的得力助手,借助小程序云开发,我们可以轻松创建一款个性化且功能强大的便签小程序,下面就详细介绍一下如何利用小程序云开发来制作便签。

准备工作

注册小程序账号

前往微信公众平台(mp.weixin.qq.com)进行小程序账号注册,按照提示填写相关信息,完成注册流程,注册成功后,登录账号进入小程序管理后台。

开通云开发

在小程序管理后台,找到“云开发”选项并开通,云开发提供了便捷的后端服务,包括云数据库、云存储和云函数等,让我们无需搭建复杂的服务器环境即可开发小程序。

搭建小程序框架

创建项目

登录小程序管理后台后,点击“开发” -> “开发设置”,获取小程序的 AppID,然后使用微信开发者工具创建一个新的小程序项目,在开发者工具中,选择“小程序项目”,输入项目名称、项目目录等信息,并将刚刚获取的 AppID 填入相应位置。

设计页面布局

便签小程序通常需要包含多个页面,如首页展示所有便签列表、新建便签页面、编辑便签页面等。

  1. 首页
    • 创建一个新的页面文件,pages/index/index.wxml,在该文件中,使用 view 组件来展示便签列表,可以通过循环遍历云数据库中存储的便签数据,动态生成每个便签的展示项。
      <view wx:for="{{notes}}" wx:key="id">
      <view class="note-item">
        <view class="note-title">{{item.title}}</view>
        <view class="note-content">{{item.content}}</view>
        <view class="note-actions">
          <button bindtap="editNote" data-id="{{item.id}}">编辑</button>
          <button bindtap="deleteNote" data-id="{{item.id}}">删除</button>
        </view>
      </view>
      </view>
    • pages/index/index.wxss 文件中编写相应的样式,美化便签展示效果,如设置便签项的背景颜色、文字样式等。
  2. 新建便签页面
    • 创建 pages/new-note/new-note.wxml 文件,设计新建便签的输入框和提交按钮等界面元素。
      <view class="new-note-container">
      <input type="text" placeholder="请输入便签标题" bindinput="handleTitleInput" data-field="title" />
      <textarea placeholder="请输入便签内容" bindinput="handleContentInput" data-field="content"></textarea>
      <button bindtap="saveNote">保存</button>
      </view>
    • 同样,在 pages/new-note/new-note.wxss 文件中设置页面样式,使其与整体风格一致。
  3. 编辑便签页面
    • 创建 pages/edit-note/edit-note.wxml 文件,与新建便签页面类似,但输入框中应预先填充要编辑的便签数据,可以通过在首页点击“编辑”按钮时,将便签的 id 传递过来,然后在编辑页面通过云数据库查询该便签的详细信息并填充到输入框中。
      <view class="edit-note-container">
      <input type="text" placeholder="请输入便签标题" bindinput="handleTitleInput" data-field="title" value="{{note.title}}" />
      <textarea placeholder="请输入便签内容" bindinput="handleContentInput" data-field="content">{{note.content}}</textarea>
      <button bindtap="updateNote">更新</button>
      </view>
    • 并在 pages/edit-note/edit-note.wxss 文件中设置样式。

配置页面路由

app.json 文件中配置页面路由,将上述创建的页面路径添加到 pages 数组中,以便小程序能够正确导航到各个页面。

{
  "pages": [
    "pages/index/index",
    "pages/new-note/new-note",
    "pages/edit-note/edit-note"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "便签",
    "navigationBarTextStyle": "black"
  }
}

使用云数据库存储便签数据

创建数据库++

在云开发控制台中,点击“数据库” -> “++管理”,创建一个名为 notes 的++,用于存储便签数据,++中的每条记录可以包含便签的标题、内容、创建时间、更新时间等字段。

编写数据操作函数

  1. 保存便签: 在 pages/new-note/new-note.js 文件中编写 saveNote 函数,将用户输入的标题和内容保存到云数据库中。
    saveNote: function() {
    const db = wx.cloud.database();
    const _ = db.command;
    const title = this.data.title;
    const content = this.data.content;
    db.collection('notes').add({
     data: {
       title,
       content,
       createTime: new Date()
     },
     success: res => {
       wx.showToast({
         title: '保存成功',
         icon: 'success'
       });
       wx.navigateBack();
     },
     fail: err => {
       wx.showToast({
         title: '保存失败',
         icon: 'none'
       });
     }
    });
    },
  2. 获取便签列表: 在 pages/index/index.js 文件中编写 getNotes 函数,从云数据库中获取所有便签数据,并更新页面显示。
    getNotes: function() {
    const db = wx.cloud.database();
    db.collection('notes').orderBy('createTime', 'desc').get({
     success: res => {
       this.setData({
         notes: res.data
       });
     },
     fail: err => {
       wx.showToast({
         title: '获取便签列表失败',
         icon: 'none'
       });
     }
    });
    },
  3. 编辑便签: 在 pages/index/index.js 文件中编写 editNote 函数,跳转到编辑便签页面,并传递要编辑的便签 id
    editNote: function(e) {
    const noteId = e.currentTarget.dataset.id;
    wx.navigateTo({
     url: `/pages/edit-note/edit-note?id=${noteId}`
    });
    },

    pages/edit-note/edit-note.js 文件中编写 updateNote 函数,根据传递过来的 id 更新云数据库中的便签数据。

    updateNote: function() {
    const db = wx.cloud.database();
    const _ = db.command;
    const noteId = this.data.noteId;
    const title = this.data.title;
    const content = this.data.content;
    db.collection('notes').doc(noteId).update({
     data: {
       title,
       content,
       updateTime: new Date()
     },
     success: res => {
       wx.showToast({
         title: '更新成功',
         icon: 'success'
       });
       wx.navigateBack();
     },
     fail: err => {
       wx.showToast({
         title: '更新失败',
         icon: 'none'
       });
     }
    });
    },
  4. 删除便签: 在 pages/index/index.js 文件中编写 deleteNote 函数,根据传递过来的 id 删除云数据库中的便签数据。
    deleteNote: function(e) {
    const noteId = e.currentTarget.dataset.id;
    const db = wx.cloud.database();
    db.collection('notes').doc(noteId).remove({
     success: res => {
       wx.showToast({
         title: '删除成功',
         icon: 'success'
       });
       this.getNotes();
     },
     fail: err => {
       wx.showToast({
         title: '删除失败',
         icon: 'none'
       });
     }
    });
    },

完善功能与优化体验

数据验证

在保存和更新便签时,添加数据验证逻辑,确保用户输入的标题和内容不为空。

handleTitleInput: function(e) {
  const field = e.currentTarget.dataset.field;
  const value = e.detail.value;
  if (field === 'title' && value === '') {
    wx.showToast({
      title: '标题不能为空',
      icon: 'none'
    });
    return;
  }
  this.setData({
    [field]: value
  });
},
handleContentInput: function(e) {
  const field = e.currentTarget.dataset.field;
  const value = e.detail.value;
  if (field === 'content' && value === '') {
    wx.showToast({
      title: '内容不能为空',
      icon: 'none'
    });
    return;
  }
  this.setData({
    [field]: value
  });
},

时间格式化

在便签列表中,将创建时间和更新时间格式化为更易读的形式,可以在 pages/index/index.wxml 文件中使用 date 函数进行格式化。

<view class="note-item">
  <view class="note-title">{{item.title}}</view>
  <view class="note-content">{{item.content}}</view>
  <view class="note-actions">
    <button bindtap="editNote" data-id="{{item.id}}">编辑</button>
    <button bindtap="deleteNote" data-id="{{item.id}}">删除</button>
  </view>
  <view class="note-time">创建时间:{{item.createTime | date('yyyy-MM-dd hh:mm:ss')}}, 更新时间:{{item.updateTime | date('yyyy-MM-dd hh:mm:ss')}}</view>
</view>

并在 pages/index/index.wxs 文件中定义 date 函数:

module.exports = {
  date: function(time) {
    const date = new Date(time);
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    const seconds = date.getSeconds().toString().padStart(2, '0');
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  }
};

搜索功能

添加搜索功能,方便用户快速找到特定的便签,可以在首页添加一个搜索框,当用户输入关键词时,根据标题或内容进行模糊搜索。

  1. pages/index/index.wxml 文件中添加搜索框:
    <view class="search-container">
    <input type="text" placeholder="搜索便签" bindinput="handleSearchInput" />
    </view>
  2. pages/index/index.js 文件中编写搜索逻辑:
    handleSearchInput: function(e) {
    const keyword = e.detail.value;
    const db = wx.cloud.database();
    db.collection('notes').where({ _.regex(new RegExp(keyword, 'i')),
     or: [
       { content: _.regex(new RegExp(keyword, 'i')) }
     ]
    }).get({
     success: res => {
       this.setData({
         notes: res.data
       });
     },
     fail: err => {
       wx.showToast({
         title: '搜索失败',
         icon: 'none'
       });
     }
    });
    },

通过以上步骤,一个功能较为完善的小程序云开发便签就制作完成啦😃!它可以帮助我们更高效地记录和管理日常信息,为生活和工作带来便利,你可以根据自己的需求进一步优化和扩展该便签小程序,比如添加分类功能、设置提醒等,让它更加符合你的个性化使用场景。

小程序设计

开发小程序的花费

开发小程序的花费解析与预算规划随着移动互联网的快速发展,小程序因其便捷性、低成本和高效性成为了企业拓展线上业务的重要手段,开发一个功能完善、用户体验良好的小程序并非易事,其中涉及到的花费也是企业关...

便宜微信小程序商城开发

便宜微信小程序商城开发,助力商家轻松搭建线上销售平台随着移动互联网的快速发展,微信小程序已经成为商家们拓展线上销售渠道的重要工具,而便宜微信小程序商城开发,更是为广大商家提供了便捷、高效的解决方案...

渭南小程序网站开发报价

精准预算,助力企业数字化转型随着移动互联网的飞速发展,小程序作为一种轻量级的应用程序,凭借其便捷性、高效性和低成本等优势,已经成为企业数字化转型的重要工具,在渭南,越来越多的企业开始关注小程序网站...

宜城市小程序开发公司

宜城市小程序开发公司助力企业数字化转型随着移动互联网的飞速发展,小程序凭借其轻量级、便捷性、易用性等特点,逐渐成为企业数字化转型的重要工具,在宜城市,众多企业纷纷投入小程序开发,以提升用户体验,拓...

签到++小程序开发

提升用户粘性的创新之道随着移动互联网的快速发展,小程序作为一种轻量级的应用形式,逐渐成为各大企业争相布局的新战场,在这其中,签到++小程序因其独特的运营模式,受到了广泛关注,本文将探讨签到++小程...

uni-app钉钉小程序开发

深入解析uni-app在钉钉小程序开发中的应用与优势随着移动互联网的快速发展,企业对移动办公的需求日益增长,钉钉作为一款集办公、通讯、协作于一体的企业级应用,已经成为众多企业的首选,而uni-ap...

锦州商城小程序开发

打造便捷购物新体验随着移动互联网的快速发展,小程序作为一种轻量级的应用,逐渐成为人们生活中不可或缺的一部分,锦州商城作为一家集购物、娱乐、生活服务于一体的综合性商城,为了更好地满足消费者的需求,近...

自动续费小程序开发工具

创新生活服务的得力助手随着移动互联网的快速发展,小程序作为一种轻量级的应用程序,凭借其便捷、高效的特点,逐渐成为人们生活中不可或缺的一部分,而自动续费小程序开发工具的出现,更是为我们的生活服务带来...

义乌本地小程序开发

赋能实体经济,助力智慧城市随着移动互联网的飞速发展,小程序作为一种轻量级的应用程序,以其便捷、高效、低成本的特性,逐渐成为企业拓展市场、提升服务的重要工具,在义乌这座以小商品市场闻名于世的商业城市...

云开发小程序部署

云开发小程序的便捷部署之路随着移动互联网的快速发展,小程序因其轻量、便捷、易用等特点,受到了广大用户的喜爱,而云开发技术的兴起,更是为小程序的开发和部署提供了强大的支持,本文将为您详细介绍云开发小...

云游校园小程序开发

开启智慧校园新篇章随着科技的飞速发展,移动互联网已经成为人们生活不可或缺的一部分,在教育领域,传统的校园管理模式已无法满足现代学生的需求,为了提升校园信息化水平,优化学生校园生活体验,云游校园小程...

成都小程序开发优惠活动

成都小程序开发优惠活动来袭,抓住机遇,开启您的创业之旅!随着移动互联网的飞速发展,小程序已成为当下最热门的创业风口,在这个充满机遇和挑战的时代,成都小程序开发优惠活动强势来袭,助力创业者抓住机遇,...

潇湘

潇湘

TA太懒了...暂时没有任何简介

小程序开发