嘿,别想那么复杂!我的第一个微信小程序长这样

大家好,我是小杨。作为一名前端"老鸟",我发现很多刚接触微信小程序的朋友都会把它想得特别复杂。其实,它的核心概念非常直观。今天,我就抛开那些深奥的理论,带大家看看一个最最简单的小程序项目是怎么搭建起来的,保证你看完就能动手试试!

一、准备工作:磨刀不误砍柴工

在开始写代码之前,我们得先把"场地"准备好。

  1. 安装开发者工具:去微信公众平台官网下载并安装微信开发者工具。这就像是我们写代码的"写字楼",必不可少。
  2. 获取AppID:如果你有公众号,可以在后台找到你的小程序AppID。如果是新手,在开发者工具里可以先使用"测试号",这足够我们进行学习和开发了。

准备好这两样,我们就可以创建一个新的小程序项目了!

二、认识小程序的核心"家庭成员"

一个最简单的小程序项目,通常包含以下几种文件,我把它们看作一个家庭的成员:

  • .json 后缀的文件 → "管家" :负责配置和描述。它不说话,但决定了这个家(页面或整个应用)的规矩和样子。
  • .wxml 后缀的文件 → "骨架" :负责结构。它定义了页面上有什么东西,比如按钮、文字、图片等。它很像我们熟悉的HTML。
  • .wxss 后缀的文件 → "衣服" :负责样式。它决定了骨架上的元素长什么样,比如颜色、大小、位置。它基本就是CSS的"亲兄弟"。
  • .js 后缀的文件 → "灵魂" :负责逻辑和行为。它让页面能动起来,能处理用户的点击、能请求数据。

下面,我就带着大家亲手"组建"这个家庭。

三、动手实战:创建一个"自我介绍"页面

假设我们要做一个页面,上面显示一句话和一个按钮,点击按钮后,能改变这句话的内容。

1. 先看"管家"(app.json

这个文件是全局配置,它告诉小程序由哪些页面组成,以及窗口的整体风格。

json 复制代码
// app.json
{
  "pages": [
    "pages/index/index"
  ],
  "window": {
    "navigationBarTitleText": "我的第一个小程序"
  }
}

这里,我们告诉小程序,第一个页面是 pages/index/index,并且窗口顶部的标题是"我的第一个小程序"。

2. 再看"骨架"(index.wxml

这个文件定义了页面的结构。

html 复制代码
<!-- pages/index/index.wxml -->
<view class="container">
  <text>{{ greeting }}</text>
  <button bindtap="changeGreeting">点我改变文字</button>
</view>

注意看这里有两个关键点:

  • {{ greeting }}:这是 Mustache 语法,用于动态显示数据。greeting 是一个变量,它的值来自我们稍后在 .js 文件里定义的数据。
  • bindtap="changeGreeting":这是绑定一个事件。当用户点击(tap)这个按钮时,会触发我们在 .js 文件里定义的 changeGreeting 函数。

3. 给它穿件"衣服"(index.wxss

我们来给页面加点简单的样式。

css 复制代码
/* pages/index/index.wxss */
.container {
  padding: 20rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

text {
  font-size: 40rpx;
  margin-bottom: 40rpx;
  color: #2c3e50;
}

button {
  width: 200rpx;
}

这里用了 rpx 这个单位,它能自适应不同尺寸的屏幕,非常方便。

4. 注入"灵魂"(index.js

最核心的部分来了,这里定义了数据和逻辑。

javascript 复制代码
// pages/index/index.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    greeting: '你好,世界!我是小杨。'
  },

  /**
   * 自定义函数:改变问候语
   */
  changeGreeting: function () {
    // 我通过 this.setData 方法来更新页面数据
    this.setData({
      greeting: '哈哈,文字真的变了!欢迎入门小程序开发!'
    });
  }
})

我来解释一下:

  • data: 这里定义了页面初始化时需要的数据。之前 WXML 里的 {{ greeting }} 一开始显示的就是这里的 '你好,世界!我是小杨。'
  • changeGreeting: 这是我们自定义的一个函数。当按钮被点击时,它就会被调用。函数内部的 this.setData() 是小程序提供的唯一 可以更新数据并让页面同步渲染的方法。它把 greeting 的值更新成了新的字符串。

四、看看效果吧!

现在,在微信开发者工具中点击"编译",你就能看到一个简单的页面了。初始文字是"你好,世界!我是小杨。",当你点击按钮后,文字会立刻变成"哈哈,文字真的变了!欢迎入门小程序开发!"。

这个过程虽然简单,但却完整地演示了小程序 数据驱动视图 的核心思想:我们通过修改 .js 文件里的 data,视图(WXML)就会自动更新。

五、小结

看,是不是没有想象中那么难?我们通过一个简单的例子,走通了小程序最基本的几个环节:

  1. 配置(json):定规矩。
  2. 结构(wxml):搭架子。
  3. 样式(wxss):穿衣服。
  4. 逻辑(js):注入灵魂。

希望这个简单的入门指南能帮你打破对微信小程序的恐惧。下一步,你可以去尝试更多的组件(比如 image, input)和 API(比如网络请求、本地存储),官方文档写得非常详细,是最好的学习资料。

开发就是一个不断动手和试错的过程,别怕,从这个小例子开始,一步步构建出你自己的小程序吧!如果遇到问题,欢迎在评论区交流。

⭐ 写在最后

请大家不吝赐教,在下方评论或者私信我,十分感谢🙏🙏🙏.

✅ 认为我某个部分的设计过于繁琐,有更加简单或者更高逼格的封装方式

✅ 认为我部分代码过于老旧,可以提供新的API或最新语法

✅ 对于文章中部分内容不理解

✅ 解答我文章中一些疑问

✅ 认为某些交互,功能需要优化,发现BUG

✅ 想要添加新功能,对于整体的设计,外观有更好的建议

✅ 一起探讨技术加qq交流群:906392632

最后感谢各位的耐心观看,既然都到这了,点个 👍赞再走吧!

相关推荐
敲敲了个代码7 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
dly_blog8 小时前
Vue 响应式陷阱与解决方案(第19节)
前端·javascript·vue.js
消失的旧时光-19439 小时前
401 自动刷新 Token 的完整架构设计(Dio 实战版)
开发语言·前端·javascript
console.log('npc')9 小时前
Table,vue3在父组件调用子组件columns列的方法展示弹窗文件预览效果
前端·javascript·vue.js
用户47949283569159 小时前
React Hooks 的“天条”:为啥绝对不能写在 if 语句里?
前端·react.js
我命由我123459 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
用户479492835691510 小时前
给客户做私有化部署,我是如何优雅搞定 NPM 依赖管理的?
前端·后端·程序员
C_心欲无痕10 小时前
vue3 - markRaw标记为非响应式对象
前端·javascript·vue.js
qingyun98910 小时前
深度优先遍历:JavaScript递归查找树形数据结构中的节点标签
前端·javascript·数据结构
胡楚昊10 小时前
NSSCTF动调题包通关
开发语言·javascript·算法