微信小程序介绍-以及写项目流程(重要)

news2024/12/26 23:27:31

前言:本篇文章介绍微信小程序以及项目介绍:

文章介绍:介绍了微信小程序常用的指令、组件、api。
tips:最好按照官方文档来进行学习,大致可以我的目录来学习,对于写项目是没有问题的

微信小程序官方文档icon-default.png?t=O83Ahttps://developers.weixin.qq.com/miniprogram/dev/framework/

想要了解更多可以关注博客⭐⭐七条小鲤鱼的博客⭐⭐

目录

一、下载以及创建项目

1.下载方式以及流程

2.创建步骤

二、微信小程序常用介绍

1、目录结构

2、模板语法以及指令

3、动态更新数据

4、常用组件

5、API

三、引入Vant Weapp组件库

1. 安装 Vant Weapp 组件库

2. 修改项目配置

4. 在页面中引入组件

5. 在页面中使用组件(测试)

四、项目中实用的功能

1、tabBar

2、轮播图

3、视频组件封面图

五、项目中的错误

1、navigoator配置好点击不跳转

六、项目展示


一、下载以及创建项目

1.下载方式以及流程

下载流程icon-default.png?t=O83Ahttps://blog.csdn.net/m0_70474954/article/details/127182224

2.创建步骤

2.1 首先打开软件 "微信开发者工具"

2.2 然后其中的 AppID 的位置

微信公众平台的开发管理里面

二、微信小程序常用介绍

微信小程序官方文档icon-default.png?t=O83Ahttps://developers.weixin.qq.com/miniprogram/dev/framework/

1、目录结构

2、模板语法以及指令

2.1、数据绑定

使用双大括号 {{ }} 来绑定数据。例如,<text>{{message}}</text> 会显示变量 message 的内容。

2.3、事件绑定

使用 bind 或者 bind 前缀来监听事件。例如,<button bindtap="onTap">点击我</button> 会在用户点击按钮时触发 onTap 方法。

2.4、条件渲染

使用 wx:if, wx:elif, wx:else 来根据条件渲染不同的组件。例如:

<view wx:if="{{condition}}">满足条件时显示</view>
2.5、列表渲染

使用 wx:for 指令来循环渲染列表。例如:

<view wx:for="{{array}}" wx:key="uniqueKey">
  <text>{{item.value}}</text>
</view>

3、动态更新数据

使用 setData 更新数据:

this.setData({
message: 'Hello Wechat!'
});

4、常用组件

1.Swiper 轮播图组件

swiper 组件用于创建轮播图效果。基本属性包括:

  • autoplay:是否自动播放。
  • interval:自动播放的时间间隔。
  • duration:滑动动画时长。
  • circular:是否采用衔接滑动。
<swiper autoplay="true" interval="5000" duration="500" circular="true">
  <swiper-item wx:for="{{imgList}}" wx:key="*this">
    <image src="{{item}}" mode="aspectFill"></image>
  </swiper-item>
</swiper>
2. scroll-view 滚动视图组件

scroll-view 组件用于创建可滚动视图。基本属性包括:

  • scroll-x:允许横向滚动。
  • scroll-y:允许纵向滚动。
<scroll-view scroll-y="true" style="height: 300px;">
  <view wx:for="{{list}}" wx:key="*this">
    <text>{{item}}</text>
  </view>
</scroll-view>
3. form 表单组件

form 组件用于收集用户输入的数据。基本用法包括:

  • bindsubmit:提交表单时触发的事件。
<form bindsubmit="formSubmit">
  <input name="username" placeholder="请输入用户名" />
  <button formType="submit">提交</button>
</form>
4. navigator 导航组件

navigator 组件用于页面间的跳转跳。基本属性包括:

  • url:跳转的目标页面路径。
  • open-type:跳转的方式,如 navigateredirectswitchTab
<navigator url="/pages/detail/detail" open-type="navigate">跳转到详情页</navigator>
5. button 按钮组件

button 组件用于触发事件。常用属性包括:

  • bindtap:点击按钮时触发的事件。
  • open-type:开放能力,如获取用户信息、获取手机号等。
<button bindtap="onTap" open-type="getUserInfo">点击我</button>
6. input 输入组件

input 组件用于获取用户输入。基本属性包括:

  • value:输入的值。
  • bindinput:输入时触发的事件。
<input value="{{inputValue}}" bindinput="onInput" placeholder="请输入内容" />
7. picker 选择器组件

picker 组件用于选择日期、时间等。基本用法包括:

  • mode:选择器的类型,如 datetime
  • bindchange:选择变化时触发的事件。
<picker mode="date" bindchange="onDateChange">
8. checkbox 多选框组件

checkbox 组件用于多选。基本用法包括:

  • bindchange:选项变化时触发的事件。
<checkbox-group bindchange="checkboxChange">
  <label wx:for="{{checkboxItems}}" wx:key="*this">
    <checkbox value="{{item.value}}" checked="{{item.checked}}"/>
    <text>{{item.name}}</text>
  </label>
</checkbox-group>

5、API

1. 界面交互API
  • 显示消息提示框 (wx.showToast): 用于显示轻提示框。
    wx.showToast({
      title: '操作成功',
      icon: 'success',
      duration: 2000
    });
  • 显示模态对话框 (wx.showModal): 用于显示需要用户确认的对话框。
    wx.showModal({
      title: '提示',
      content: '这是一个模态弹窗',
      success: function(res) {
        if (res.confirm) console.log('用户点击确定');
        else if (res.cancel) console.log('用户点击取消');
      }
    });
  • 显示加载提示框 (wx.showLoading): 显示加载提示框,需要主动调用 wx.hideLoading 关闭。
    wx.showLoading({
      title: '加载中',
      mask: true
    });
    setTimeout(function () {
      wx.hideLoading();
    }, 2000);
2. 网络请求API
  • 发起网络请求 (wx.request): 用于向服务器发送请求并接收响应。
wx.request({
  url: 'https://example.com/api', // 服务器接口地址
  method: 'GET', // 请求方法,如GET、POST等
  data: {
    param1: 'value1',
    param2: 'value2'
  }, // 发送到服务器的数据
  success(res) {
    console.log(res.data); // 服务器返回的数据
  },
  fail(err) {
    console.error(err); // 错误处理
  }
});
3. 本地存储API
  • 本地存储 (wx.setStorageSync): 将数据存储到本地。
- **本地获取** (`wx.getStorageSync`): 从本地缓存中获取指定 key 的内容。
```javascript
const value = wx.getStorageSync('key');
  • 本地移除 (wx.removeStorageSync): 从本地缓存中移除指定 key 的数据。

### 4. 设备信息API
- **获取系统信息** (`wx.getSystemInfo`): 获取系统信息,如品牌、型号、操作系统版本、微信版本、屏幕宽高等。
```javascript
wx.getSystemInfo({
success(res) {
  console.log(res.model); // 如 'iPhone X'
}
});
4、生命周期
  • 页面生命周期:
    • onLoad:加载页面时调用,可以获取查询参数。
    • onShow:页面显示时调用。
    • onReady:页面初次渲染完成时调用,此时可以进行DOM操作。
    • onHide:页面隐藏时调用。
    • onUnload:页面卸载时调用。
  • 组件生命周期:
    • created:组件实例被创建时调用。
    • attached:组件被从页面节点树移除时调用。
    • ready:组件初次渲染完成时被调用。
    • moved:组件移动到节点树另一个位置时调用。
    • detached:组件从页面节点树移除时调用。

三、引入Vant Weapp组件库

1. 安装 Vant Weapp 组件库

在项目的根目录下打开命令行工具,执行以下命令来安装 Vant Weapp 组件库:

npm i @vant/weapp -S --production

这将会安装 Vant Weapp 组件库并保存到 package.json 中的 dependencies 里。

2. 修改项目配置

app.json 配置文件中,删除 style 属性中的 v2,因为 Vant Weapp 使用的是微信小程序的样式隔离模式,它不依赖于小程序的 flex 布局。

3.构建 npm 包

在微信开发者工具中,选择 "工具" -> "构建 npm",这将自动处理 npm 包并生成 miniprogram_npm 目录,里面包含了小程序可用的组件代码。

4. 在页面中引入组件

在页面的 .json 文件中,使用 usingComponents 属性来指定 Vant Weapp 组件的路径。

{
  "usingComponents": true,
  "usingAutoAudits": false,
  "usingExtendedLib": false,
  "usingPostCSS": false,
  "usingAutoAudits": false,
  "component2": true,
  "usingComponents": {
    "van-button": "@vant/weapp/button/index"
  }
}

5. 在页面中使用组件(测试)

<van-button type="primary" bind:tap="onButtonClick">点击我</van-button>

四、项目中实用的功能

1、tabBar

  • 微信小程序的app.json配置文件中可以配置tabBar字段,用于定义底部导航栏。
  • 配置项包括list(导航列表)和color(图标默认颜色)等。
  • 每个list项包含pagePath(页面路径)、text(文字)、iconPath(未选中时的图标)和selectedIconPath(选中时的图标)等。
{
  "tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页",
      "iconPath": "path/to/icon.png",
      "selectedIconPath": "path/to/selected-icon.png"
    }, {
      "pagePath": "pages/mine/mine",
      "text": "我的",
      "iconPath": "path/to/icon.png",
      "selectedIconPath": "path/to/selected-icon.png"
    }]
  }
}

2、轮播图

  • 使用微信小程序的<swiper>组件来实现轮播图。
  • 需要在页面的.json配置文件中开启"enable": true来启用<swiper>组件。
  • .wxml文件中使用<swiper><swiper-item>标签来定义轮播图的每个项目。
<swiper
  indicator-dots="true"
  autoplay="true"
  interval="5000"
  duration="500">
  <swiper-item wx:for="{{imageList}}" wx:key="unique">
    <image src="{{item}}" class="slide-image" />
  </swiper-item>
</swiper>

3、视频组件封面图

  • 使用微信小程序的<video>组件,并设置poster属性来指定视频的封面图。
  • poster属性的值是封面图片的路径。
<video
  src="path/to/video.mp4"
  poster="path/to/cover.jpg"
  controls="true"
  autoplay="false"
  />

五、项目中的错误

1、navigoator配置好点击不跳转

<!-- 跳转到指定页面 -->
<navigator url="/pages/target/target">跳转</navigator>

注意:url里的路径一定要带"/" 

六、项目展示

完整项目展示的视频icon-default.png?t=O83Ahttps://live.csdn.net/v/437171?spm=1001.2014.3001.5501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2254226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式蓝桥杯学习5 定时中断实现按键

Cubemx配置 打开cubemx。 前面的配置与前文一样&#xff0c;这里主要配置基本定时器的定时功能。 1.在Timer中点击TIM6&#xff0c;勾选activated。配置Parameter Settings中的预分频器&#xff08;PSC&#xff09;和计数器&#xff08;auto-reload Register&#xff09; 补…

特别分享!SIM卡接口功能及其电路设计相关注意事项

SIM卡接口功能及其电路设计相关注意事项对电子工程师来说非常重要。SIM卡接口用于连接SIM卡并读取SIM卡信息&#xff0c;以便在注册4G网络时进行鉴权身份验证&#xff0c;是4G通信系统的必要功能。 一、SIM卡接口功能描述 Air700ECQ/Air700EAQ/Air700EMQ系列模组支持1路USIM接…

OpenGL ES详解——文字渲染

目录 一、文字渲染 二、经典文字渲染&#xff1a;位图字体 1.概念 2.优缺点 三、现代文字渲染&#xff1a;FreeType 1.着色器 2.渲染一行文字 四、关于未来 一、文字渲染 当你在图形计算领域冒险到了一定阶段以后你可能会想使用OpenGL来绘制文字。然而&#xff0c;可能…

devops-Dockerfile+Jenkinsfile方式部署Java前后端应用

文章目录 概述部署前端Vue应用一、环境准备1、Dockerfile2、.dockerignore3、nginx.conf4、Jenkinsfile 二、Jenkins部署1、新建任务2、流水线3、Build Now 构建 & 访问 Springboot后端应用1. 准备工作2. 创建项目结构3. 编写 Dockerfile后端 Dockerfile (backend/Dockerfi…

VTK编程指南<三>:基于VTK入门程序解析来理解VTK基础知识

1、VTK入门程序 下面是一个完整的Vtk入门程序&#xff0c;我们基于这个程序来对VTK的基本知识进行一个初步了解。 #include <iostream>#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2);// VTK was built with vtkRenderingOpenGL2 VTK_MODULE_INI…

十二、消息队列-MQ

文章目录 前言一、MQ介绍1. 背景2. 解决思路3. 解决方案 二、应用场景三、常见的MQ产品四、MQ选型总结五、相关知识1. AMQP2. JMS 五、如何设计实现一个消息队列1. 设计消息队列的思路2. 实现队列基本功能1. RPC通信协议2. 高可用3. 服务端承载消息堆积的能力4. 存储子系统的选…

新手如何做好一份技术文档

对于新手来说&#xff0c;编写技术文档可能是一项挑战&#xff0c;但这也是一个提升自己技术写作能力的绝佳机会。技术文档不仅仅是代码的补充说明&#xff0c;它更是团队协作和项目成功的基石。本文将为你提供一些实用的指导和建议&#xff0c;帮助你编写出一份高质量的技术文…

如何设置PPT以“只读方式”打开?3种简单方法!

在PPT中设置文件为“只读”模式&#xff0c;可以防止自己意外修改&#xff0c;也可以防止他人对文件内容进行修改&#xff0c;确保文件的安全性。根据需求不同&#xff0c;PPT可以设置3种不同的”只读方式“&#xff0c;一起来看看吧&#xff01; 方式1&#xff1a;设置文件为只…

DICOM医学影象应用篇——多平面重建(MPR)在DICOM医学影像中的应用详解

目录 MPR(多平面重建)概述 基本原理 具体实现 代码详解 总结 MPR(多平面重建)概述 多平面重建&#xff08;MPR, Multi-Planar Reconstruction&#xff09;是一项用于从三维医学影像数据集中生成不同平面的二维切片的技术。通常应用于CT或MRI数据集&#xff0c;MPR可以帮助医…

Vue前端开发-多级路由配置

在Vue 路由数组中&#xff0c;允许配置多级的路由对象结构&#xff0c;可以是二级、三级或者更多级别&#xff0c;最大级别原则上没有限制&#xff0c;但通常最大的是三或四级&#xff0c;这种路由结构&#xff0c;称之为多级路由。 例如&#xff1a;一级路由地址/list&#x…

【二分查找】力扣 875. 爱吃香蕉的珂珂

一、题目 二、思路 速度 k&#xff08;单位&#xff1a;根/小时&#xff09;是存在一个取值范围的。 速度越大肯定在规定的时间之内一定会吃完全部的香蕉&#xff0c;但也是可以确定出一个上界的。由于只要保证一小时之内&#xff0c;可以吃完香蕉数目最多的那一堆的香蕉&…

C语言——指针基础

1 指针基础 怎么获得变量地址 1 如何产生一个指针变量——>类型* 标识符;int* p1;char* p2;double* p3;//不同类型的基本指针占用内存是一样的都是4个字节&#xff08;32位&#xff09;/8个字节&#xff08;64位&#xff09;&#xff0c;都是存的地址2 数组名是数组首地址…

Leetcode day1.两数相加(2) 2.整数反转(7)

注意点&#xff1a;1.链表会出现其中一个已经为空&#xff0c;另一个缺还是有数据 2.相加时会出现进位操作 解法一、 利用队列的性质&#xff08;基础不好 第一时间想到的&#xff09; 很像队列的性质&#xff0c;先进先出&#xff0c;逐步计算。但是最后要换成链表样式。 …

在Ubuntu-22.04 [WSL2]中配置Docker

文章目录 0. 进入Ubuntu-22.041. 更新系统软件包2. 安装Docker相关依赖包3. 添加Docker官方GPG密钥4. 添加Docker软件源5. 安装Docker Engine5.1 更新软件包列表5.2 安装Docker相关软件包 6. 验证Docker安装是否成功6.1 查看Docker版本信息6.2 启动Docker6.3 配置镜像加速器6.4…

51单片机应用开发(进阶)---串口接收字符命令

实现目标 1、巩固UART知识&#xff1b; 2、掌握串口接收字符数据&#xff1b; 3、具体实现目标&#xff1a;&#xff08;1&#xff09;上位机串口助手发送多字符命令&#xff0c;单片机接收命令作相应的处理&#xff08;如&#xff1a;openled1 即打开LED1;closeled1 即关…

【查询基础】.NET开源 ORM 框架 SqlSugar 系列

&#x1f4a5; .NET开源 ORM 框架 SqlSugar 系列 &#x1f389;&#x1f389;&#x1f389; 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…

基于Matlab BP神经网络的电力负荷预测模型研究与实现

随着电力系统的复杂性和规模的不断增长&#xff0c;准确的电力负荷预测对于电网的稳定性和运行效率至关重要。传统的负荷预测方法依赖于历史数据和简单的统计模型&#xff0c;但这些方法在处理非线性和动态变化的负荷数据时&#xff0c;表现出较大的局限性。近年来&#xff0c;…

LeetCode - #150 逆波兰表达式求值

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&#xff0c;ACE 职业健身教练。&#xff09;的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新…

mysql基础学习1

useradd -r -g mysql -s /bin/false mysql (-r)系统用户 不能登录 A temporary password is generated for rootlocalhost: d>#jT7rfoaz) 看是否启动 看进程 端口 直接连接 看日志 varchar (20) char(20)更耗空间 create table student_info(id int,name varchar(20),s…

PPT怎样做的更加精美

目录 PPT怎样做的更加精美 3D的GIF图片 3维空间图​编辑 结果有明显的对比 阅读高质量文献,采用他们的图 PPT怎样做的更加精美 3D的GIF图片 3维空间图 结果有明显的对比