返回

从零入门 微信小程序开发:打造一个 Todo 小程序

前端

微信小程序初探

微信小程序是一种轻量级的应用程序,可以在微信生态系统内运行。与传统应用程序不同,小程序无需下载安装,只需在微信内即可使用,为用户提供了便捷的交互方式。

从零开始构建 Todo 小程序

一、小程序目录结构

小程序目录结构包含一个整体程序的 app 和多个各自页面的 page。

app 包含三个部分:app.js、app.json 和 app.wxss。其中,app.js 是小程序的入口文件,负责小程序的初始化和全局逻辑;app.json 定义了小程序的配置信息,如页面路径、窗口大小和权限;app.wxss 则包含小程序的全局样式。

每个 page 包含四个部分:page.js、page.json、page.wxml 和 page.wxss。page.js 是页面的逻辑代码,负责处理页面数据和事件;page.json 定义了页面的配置信息,如页面标题和导航栏;page.wxml 是页面的结构和内容,使用类似 HTML 的语法;page.wxss 是页面的样式文件,使用类似 CSS 的语法。

二、创建 Todo 列表

我们首先创建一个小程序页面,展示一个 Todo 列表。在 page.wxml 中,使用 v-for 循环动态渲染 Todo 列表中的每一项:

<view class="todo-list">
  <view class="todo-item" v-for="(item, index) in todos" :key="index">
    <checkbox :checked="item.completed" @change="toggleCompleted(index)" />
    <text>{{ item.title }}</text>
    <button @click="deleteTodo(index)">删除</button>
  </view>
</view>

三、事件处理

小程序提供了丰富的事件系统,允许开发者响应用户的操作。例如,当用户点击 Todo 列表中的复选框时,我们可以使用 v-on 指令绑定 toggleCompleted 方法:

<checkbox :checked="item.completed" @change="toggleCompleted(index)" />

四、数据存储

为了使 Todo 列表的数据在页面刷新后仍然存在,我们需要使用数据存储。小程序提供了多种数据存储方式,例如全局数据和本地存储。在这里,我们使用 Vuex 来管理 Todo 列表的数据:

import Vuex from 'vuex'
const store = new Vuex.Store({
  state: {
    todos: []
  },
  mutations: {
    addTodo(state, todo) {
      state.todos.push(todo)
    },
    toggleCompleted(state, index) {
      state.todos[index].completed = !state.todos[index].completed
    },
    deleteTodo(state, index) {
      state.todos.splice(index, 1)
    }
  }
})

五、样式设计

小程序使用类似 CSS 的语法进行样式设计。我们可以将样式代码写在 page.wxss 中:

.todo-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.todo-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px;
  background-color: #eee;
}

.todo-item--completed {
  background-color: #ccc;
}

总结

通过本教程,我们从头到尾构建了一个简单的微信小程序,涵盖了小程序目录结构、创建 Todo 列表、事件处理、数据存储和样式设计等基本知识。希望本教程能够帮助您入门微信小程序开发,并为构建更复杂的小程序奠定基础。