# 微信小程序教程 (附带配置文件代码)

1. 前言

什么是微信小程序

  • 微信小程序是一种全新的应用形态,它是基于微信社交平台开发的一种应用程序,用户无需下载安装即可使用,是一种轻量级的应用。
  • 微信小程序不仅具有传统应用的功能,如展示商品、提供服务等,还具有更强的社交属性,如分享、转发等,可以在微信朋友圈、微信群等社交场景中快速传播。
  • 微信小程序具有开发成本低、开发周期短、用户体验好等优点,是目前移动互联网应用开发的一个重要趋势。

微信小程序的优势和应用场景- 微信小程序的优势:

  • 无需下载安装,即点即用,提高用户体验
  • 与微信生态圈紧密结合,拥有巨大的用户基础
  • 开发成本低,上线门槛低,适合个人、小团队开发
  • 支持多种开发语言和框架,灵活性高
  • 微信小程序的应用场景:
    • 餐饮外卖、在线购物、生活服务等O2O领域
    • 社交、娱乐、教育等垂直领域
    • 企业内部管理、员工培训等企业级应用场景
    • 其他领域的轻应用场景

2. 准备工作

  1. 注册微信小程序账号
  2. 安装开发工具
  3. 了解微信小程序开发框架

3. 开始开发

3.1. 创建项目

项目结构介绍

  • 项目结构介绍:

小程序项目结构如下:

├── app.js
├── app.json
├── app.wxss
├── pages
│   ├── index
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   └── logs
│       ├── logs.js
│       ├── logs.json
│       ├── logs.wxml
│       └── logs.wxss
└── utils
    └── util.js

其中,app.jsapp.jsonapp.wxss 为全局配置文件,pages 文件夹下为各个页面的配置和代码,utils 文件夹下为工具类代码。

配置文件介绍- 配置文件介绍

在小程序项目中,我们需要用到两个配置文件:app.jsonproject.config.json

  • app.json

    app.json是小程序的全局配置文件,用于配置小程序的页面路径、窗口背景色、导航条样式、底部标签栏等。下面是一个简单的app.json配置示例:

    {
          
          
      "pages": [
        "pages/index/index",
        "pages/logs/logs"
      ],
      "window": {
          
          
        "navigationBarBackgroundColor": "#ffffff",
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "微信小程序",
        "backgroundColor": "#eeeeee",
        "backgroundTextStyle": "light"
      },
      "tabBar": {
          
          
        "color": "#999999",
        "selectedColor": "#ff0000",
        "backgroundColor": "#ffffff",
        "borderStyle": "black",
        "list": [
          {
          
          
            "pagePath": "pages/index/index",
            "text": "首页",
            "iconPath": "images/tabbar/home.png",
            "selectedIconPath": "images/tabbar/home_active.png"
          },
          {
          
          
            "pagePath": "pages/logs/logs",
            "text": "日志",
            "iconPath": "images/tabbar/logs.png",
            "selectedIconPath": "images/tabbar/logs_active.png"
          }
        ]
      }
    }
    
  • project.config.json

    project.config.json是小程序项目的配置文件,用于配置小程序的开发工具相关信息,如appid、项目名称、开发者信息、编译设置等。下面是一个简单的project.config.json配置示例:

    {
          
          
      "miniprogramRoot": "./",
      "appid": "wx1234567890abcdef",
      "projectname": "微信小程序",
      "description": "这是一个微信小程序示例",
      "setting": {
          
          
        "urlCheck": true,
        "es6": true,
        "postcss": true,
        "minified": true,
        "newFeature": true
      },
      "compileType": "miniprogram"
    }
    

3.2. 页面开发

页面结构和样式

  • 页面结构和样式

    • wxml文件中编写页面结构,可以使用<view><text>等基础组件,也可以使用自定义组件。

      <view class="container">
        <view class="header">
          <text class="title">这是标题</text>
        </view>
        <view class="content">
          <text class="text">这是内容</text>
        </view>
      </view>
      
    • wxss文件中编写页面样式,可以为不同的组件设置不同的样式。

      .container {
              
              
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
      }
      
      .header {
              
              
        width: 100%;
        height: 50px;
        background-color: #333;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      
      .title {
              
              
        font-size: 24px;
        color: #fff;
      }
      
      .content {
              
              
        width: 80%;
        margin-top: 20px;
        padding: 20px;
        background-color: #eee;
        border-radius: 10px;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      
      .text {
              
              
        font-size: 18px;
        color: #333;
      }
      

数据绑定和列表渲染

  • 数据绑定

    <!-- WXML模板 -->
    <view> {
         
         { message }} </view>
    
    // JS脚本
    Page({
      data: {
        message: 'Hello World!'
      }
    })
    
  • 列表渲染

    <!-- WXML模板 -->
    <view wx:for="{
         
         { array }}" wx:key="{
         
         { index }}">
      {
         
         { index }}: {
         
         { item.message }}
    </view>
    
    // JS脚本
    Page({
      data: {
        array: [
          { message: 'foo' },
          { message: 'bar' }
        ]
      }
    })
    

事件处理和API调用- 事件处理:

  • 点击事件:当用户点击某个组件时触发,可以通过bindtap或catchtap绑定事件处理函数。
  • 输入事件:当用户在输入框中输入内容时触发,可以通过bindinput或catchinput绑定事件处理函数。
  • 滑动事件:当用户在某个组件上滑动时触发,可以通过bindtouchmove或catchtouchmove绑定事件处理函数。
  • API调用:
    • 网络请求API:可以通过wx.request发起网络请求,获取数据并进行处理。
    • 数据缓存API:可以通过wx.setStorageSync和wx.getStorageSync将数据缓存在本地,方便下次使用。
    • 地理位置API:可以通过wx.getLocation获取用户的地理位置信息,进行定位和导航等操作。
  • 表格:
    事件类型 API名称 说明
    点击事件 bindtap/catchtap 用户点击某个组件时触发
    输入事件 bindinput/catchinput 用户在输入框中输入内容时触发
    滑动事件 bindtouchmove/catchtouchmove 用户在某个组件上滑动时触发
    网络请求API wx.request 发起网络请求,获取数据并进行处理
    数据缓存API wx.setStorageSync/wx.getStorageSync 将数据缓存在本地,方便下次使用
    地理位置API wx.getLocation 获取用户的地理位置信息,进行定位和导航等操作

3.3. 组件开发

常用组件介绍

  • 常用组件介绍:
    • 按钮组件
      • 用于用户交互的按钮,可以设置不同的样式和事件。
      • 示例代码:
        <button bindtap="handleClick">点击我</button>
        
    • 图片组件
      • 用于展示图片,可以设置不同的大小和来源。
      • 示例代码:
        <image src="{
                   
                   {imageUrl}}" mode="aspectFit"></image>
        
    • 输入框组件
      • 用于用户输入文本,可以设置不同的类型和提示信息。
      • 示例代码:
        <input type="text" placeholder="请输入内容"></input>
        
    • 表格组件
      • 用于展示数据,可以设置不同的列数和行数。
      • 示例代码:
        <table>
          <thead>
            <tr>
              <th>姓名</th>
              <th>年龄</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>张三</td>
              <td>18</td>
            </tr>
            <tr>
              <td>李四</td>
              <td>20</td>
            </tr>
          </tbody>
        </table>
        

自定义组件开发- 自定义组件开发

  • 示例一:自定义组件实现一个简单的计数器

    <!-- counter.wxml -->
    <view class="counter">
      <button class="counter-btn" bindtap="handleDecrease">-</button>
      <view class="counter-num">{
         
         {num}}</view>
      <button class="counter-btn" bindtap="handleIncrease">+</button>
    </view>
    
    // counter.js
    Component({
          
          
      properties: {
          
          
        num: {
          
          
          type: Number,
          value: 0
        }
      },
      methods: {
          
          
        handleDecrease() {
          
          
          this.setData({
          
          
            num: this.data.num - 1
          })
        },
        handleIncrease() {
          
          
          this.setData({
          
          
            num: this.data.num + 1
          })
        }
      }
    })
    
    // counter.json
    {
          
          
      "component": true
    }
    
    /* counter.wxss */
    .counter {
          
          
      display: flex;
      align-items: center;
    }
    .counter-btn {
          
          
      width: 50rpx;
      height: 50rpx;
      border: 1rpx solid #ccc;
      border-radius: 50%;
      font-size: 30rpx;
      color: #333;
      background-color: #fff;
    }
    .counter-num {
          
          
      flex: 1;
      text-align: center;
      font-size: 32rpx;
    }
    
    <!-- 使用自定义组件 -->
    <counter num="{
           
           {count}}" />
    
  • 示例二:自定义组件实现一个简单的轮播图

    <!-- swiper.wxml -->
    <swiper indicator-dots="{
           
           {indicatorDots}}"
            autoplay="{
           
           {autoplay}}"
            interval="{
           
           {interval}}"
            duration="{
           
           {duration}}">
      <swiper-item wx:for="{
           
           {images}}"
                   wx:key="*this">
        <image src="{
           
           {item}}" class="swiper-img" />
      </swiper-item>
    </swiper>
    
    // swiper.js
    Component({
          
          
      properties: {
          
          
        images: {
          
          
          type: Array,
          value: []
        },
        indicatorDots: {
          
          
          type: Boolean,
          value: false
        },
        autoplay: {
          
          
          type: Boolean,
          value: false
        },
        interval: {
          
          
          type: Number,
          value: 5000
        },
        duration: {
          
          
          type: Number,
          value: 500
        }
      }
    })
    
    // swiper.json
    {
          
          
      "component": true
    }
    
    /* swiper.wxss */
    .swiper-img {
          
          
      width: 100%;
      height: 100%;
    }
    

4. 发布小程序

小程序审核流程

  • 小程序审核流程:
    1. 提交审核申请
    2. 审核中
    3. 审核通过
    4. 发布小程序
    5. 小程序上线

小程序发布流程- 小程序发布流程:

  1. 登录微信公众平台,在“开发”-“开发设置”中获取小程序的AppID。
  2. 在“设置”-“基本设置”中完善小程序的基本信息,包括名称、头像、简介、类目等。
  3. 在“开发”-“版本管理”中创建小程序版本,并上传小程序代码包。
  4. 审核通过后,在“版本管理”中提交发布审核,并等待审核结果。
  5. 审核通过后,在“版本管理”中发布小程序版本,即可在微信中搜索并使用该小程序。

5. 小结

微信小程序的未来发展

  • 微信小程序的未来发展
    • 微信小程序将成为移动互联网的重要入口之一,为用户提供更加便捷的服务。
    • 微信小程序将进一步增强其能力,例如支持更多的硬件设备、提供更加丰富的API等。
    • 微信小程序将成为企业数字化转型的重要手段,为企业提供更加高效、便捷的营销方式。
    • 微信小程序将成为开发者的重要平台之一,为开发者提供更加完善的生态系统和更加丰富的工具链支持。

前端工程师在微信小程序开发中的角色和价值- 前端工程师在微信小程序开发中的角色和价值

  • 负责小程序的前端开发,包括页面布局、交互逻辑、数据渲染等
  • 协同设计师、后端工程师完成小程序的开发和上线
  • 保证小程序的性能和用户体验,提升小程序的用户留存率和活跃度
  • 参与小程序的迭代和优化,持续提升小程序的质量和竞争力
  • 在团队中发挥技术领导力,指导其他前端工程师的成长和提升

猜你喜欢

转载自blog.csdn.net/it_varlue/article/details/129952603