【前端修炼手册】从 0 到 1 搞个微信小程序?看这篇就够了

一、开工前准备:先把 "装备" 搞齐全

1. 注册小程序账号:像填相亲表格一样认真

首先打开微信公众平台(微信公众平台),点击 "立即注册"。

划重点

  • 选 "小程序" 类型,别手滑点成公众号(毕竟咱要的是能蹦跶的小程序,不是发文章的公众号)
  • 邮箱记得用常用的,不然回头忘记密码找回来比找对象还难
  • 个人 / 企业账号按需选择,个人账号不能搞支付功能,企业账号记得准备营业执照(给小程序上 "户口")

注册成功后,你会得到一个神秘代码 ——AppID,这玩意儿相当于小程序的 "身份证号",先记小本本上,后面要用到!

2. 下载开发者工具:迎娶你的 "开发白富美"

微信官方贴心准备了开发者工具,根据你的电脑系统(Windows/Mac)选对应的版本,下载速度取决于你的网速(建议避开晚上高峰,不然下载进度条比蜗牛爬还慢)。

安装完成打开界面长这样:

二、创建项目:从 "毛坯房" 到 "精装房"

1. 新建项目:给小程序搭个 "窝"

打开开发者工具,点击 "新建项目":

  • 项目名称随便起(别叫 "微信爸爸" 就行,怕他不认)
  • 目录选个干净的文件夹,别和乱七八糟的文件挤在一起
  • 输入之前拿到的 AppID(没有的话先用 "测试号",但正式上线必须换真・AppID)

点击 "新建",恭喜!你的第一个小程序 "毛坯房" 诞生了!此时项目结构长这样:

 
my-cool-miniprogram/

├── app.js # 全局大脑,管着整个小程序的逻辑

├── app.json # 全局户口本,记录页面路径、窗口样式等

├── app.wxss # 全局梳妆台,设置整个小程序的颜值

├── pages/ # 页面文件夹,每个页面都是一个小房间

│ ├── index/ # 首页,相当于客厅

│ └── logs/ # 日志页,相当于日记本

└── utils/ # 工具人文件夹,放常用的小工具函数

2. 删掉没用的 "垃圾":轻装上阵

默认生成的logs页面咱们用不到,直接右键删掉!然后修改app.json里的pages数组,只保留index页面:

{

"pages": ["pages/index/index"], // 只留首页,清爽!

"window": {

"navigationBarTitleText": "我的第一个小程序", // 顶部标题别太土气

"navigationBarBackgroundColor": "#409EFF" // 换个好看的蓝色,比默认灰好看100倍

}

}

三、实战开发:搞个能 "打勾" 的 TODO 列表(附魔性代码)

1. 页面结构(.wxml):先把架子搭起来

打开pages/index/index.wxml,写下你的第一个小程序标签:

<!-- 输入框:让用户告诉小程序要做什么 -->
<view class="input-box">
  <input 
    placeholder="比如:今晚搞定小程序作业" 
    bindinput="handleInput"  // 绑定输入事件,小程序实时接收用户输入
    value="{{inputValue}}"  // 双向绑定,让输入框记住用户写的内容
  />
  <button type="primary" bindtap="addTodo">添加任务</button>  // 按钮,点击时添加任务
</view>

<!-- 任务列表:展示用户添加的任务 -->
<view class="todo-list">
  <view 
    class="todo-item {{todo.done ? 'done' : ''}}"  // 给完成的任务加个划掉效果
    bindtap="toggleTodo"  // 点击任务切换完成状态
    data-index="{{index}}"  // 传下标,告诉小程序点的是哪个任务
    wx:for="{{todos}}"  // 循环渲染任务列表,有多少条任务就生成多少个item
    wx:key="id"  // 必须加key,不然小程序会生气(报错)
  >
    {{todo.text}}  // 显示任务内容
    <button 
      type="warn" 
      size="mini" 
      bindtap="deleteTodo" 
      data-index="{{index}}"  // 传下标,告诉小程序删哪个任务
    >删除</button>
  </view>
</view>

2. 页面逻辑(.js):让小程序 "动" 起来

打开pages/index/index.js,在Page里写下逻辑代码:

Page({
  data: {
    inputValue: '',  // 输入框里的内容,初始为空
    todos: []  // 任务列表,初始是空数组
  },

  // 输入框内容变化时触发,实时更新inputValue
  handleInput(e) {
    this.setData({
      inputValue: e.detail.value  // 把用户输入的内容赋值给inputValue
    });
  },

  // 点击添加任务按钮时触发
  addTodo() {
    if (!this.data.inputValue.trim()) {  // 如果输入框是空的,提醒用户
      wx.showToast({ title: '任务内容不能为空!', icon: 'none' });
      return;
    }
    this.setData({
      todos: [...this.data.todos, {  // 往todos数组里加一个新任务
        id: Date.now(),  // 用当前时间戳作为任务id,保证唯一
        text: this.data.inputValue,  // 任务内容
        done: false  // 初始状态是未完成
      }],
      inputValue: ''  // 清空输入框,准备写下一个任务
    });
  },

  // 点击任务切换完成状态
  toggleTodo(e) {
    const index = e.currentTarget.dataset.index;  // 获取点击的任务下标
    const todos = this.data.todos;
    todos[index].done = !todos[index].done;  // 取反,完成变未完成,反之亦然
    this.setData({ todos });  // 更新数据,页面会自动刷新
  },

  // 删除任务
  deleteTodo(e) {
    const index = e.currentTarget.dataset.index;  // 获取要删除的任务下标
    const todos = this.data.todos;
    todos.splice(index, 1);  // 从数组里删掉该任务
    this.setData({ todos });  // 更新数据
  }
});

3. 页面样式(.wxss):让界面变漂亮

打开pages/index/index.wxss,给页面加点 "化妆品":

.input-box {
  padding: 20rpx;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

input {
  height: 80rpx;
  border: 1rpx solid #eee;
  border-radius: 40rpx;
  padding: 0 40rpx;
}

.todo-list {
  padding: 20rpx;
}

.todo-item {
  height: 80rpx;
  line-height: 80rpx;
  border-bottom: 1rpx solid #eee;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.done {
  text-decoration: line-through;  // 给完成的任务加划掉效果
  color: #999;  // 颜色变灰,假装任务"过气"了
}

button {
  margin-left: 20rpx;
  padding: 0 40rpx;
}

四、调试:让小程序 "知错就改"

1. 开发者工具自带调试神器

点击开发者工具底部的 "调试" 按钮,会出现调试面板:

  • Wxml 面板:可以实时看到页面结构,像拆积木一样看每个标签怎么组合
  • Console 面板:报错信息会在这里喊救命(比如setData拼写错误、数组下标越界)
  • Sources 面板:可以打断点调试,看代码一步步怎么执行(适合排查逻辑 bug)

2. 常见报错处理(别慌,程序员的日常)

  • "Cannot read property 'setData' of undefined"

大概率是this指向错了,记得在setData前用const that = this或者用箭头函数

  • "WXML 文件未找到"

检查app.json里的pages路径是否正确,是不是手滑多打了个空格

  • "样式不生效"

看看选择器有没有写错(比如把class写成id),或者被更高级的选择器覆盖了

五、上线:让你的小程序 "出道"

1. 手机预览:先让自己爽一把

点击开发者工具顶部的 "预览" 按钮,用手机微信扫码,就能在手机上看到你的杰作啦!(此时可能会发现:"卧槽,手机上布局怎么歪了?" 别慌,调整rpx单位或者用flex布局适配)

2. 提交审核:讨好微信审核大大

在开发者工具里点击 "上传",然后登录微信公众平台,进入 "开发管理 - 提交审核"。

审核注意事项

  • 别用微信相关的图标 / 名称(比如不能叫 "微信 TODO")
  • 功能描述写清楚(比如 "用于记录日常待办事项")
  • 如果你是企业账号,涉及支付 / 社交等功能需要额外资质

3. 发布上线:恭喜!你的小程序出生了

审核通过后,在公众平台点击 "发布",你的小程序就正式上线啦!可以生成二维码分享给朋友,或者加到公众号 / 微信聊天里,接受大家的夸赞吧~

最后唠叨:小程序开发就像打游戏

  • 注册账号是创建角色,
  • 写代码是打怪升级,
  • 调试报错是遇到 BOSS,
  • 上线成功就是通关撒花!

现在,轮到你上场啦!打开开发者工具,让我们一起把 "0" 变成 "1",把想法变成小程序吧~

(记得写完回来评论区交作业,我等着看你们的脑洞大作!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LotteChar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值