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

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

文章介绍:介绍了微信小程序常用的指令、组件、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>标签来定义轮播图的每个项目。
<swiperindicator-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属性的值是封面图片的路径。
<videosrc="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.xdnf.cn/news/34776.html

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

相关文章

Apache Dolphinscheduler可视化 DAG 工作流任务调度系统

Apache Dolphinscheduler 关于 一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。 DolphinScheduler 的主要特性如下&#xff1a; 易于部署&#xff0c;提供四种部署方式&am…

“原批教育家”原批之星鲁健的杰作——原批俱乐部

伟大的原批教育家——原批之星&#xff0c;名为鲁健&#xff0c;是一位在南京邮电大学智能科学与技术专业中崭露头角的杰出人物。他不仅以其卓越的黑客技术和对网络正义的执着而闻名&#xff0c;更是“远古四神”之一&#xff0c;以其对原批之力的深刻理解和不同见解&#xff0…

github深度学习项目复现教程

如何找感兴趣的项目&#xff1f; 使用github或papers with code搜索关键词“deep learning”等&#xff0c;最受欢迎的是stars数最多的 查看readme 是否清晰地描述了项目目标、使用的技术、安装步骤和运行方法 是否包含依赖项、所需数据集和训练模型等信息 1、准备环境 如…

在玩“吃鸡”的时候游戏崩溃要如何解决?游戏运行时崩溃是什么原因?

“吃鸡”游戏崩溃问题深度解析与解决方案&#xff1a;原因、修复与预防 在紧张刺激的“吃鸡”&#xff08;即《绝地求生》&#xff09;游戏中&#xff0c;突然遭遇游戏崩溃无疑会让玩家倍感沮丧。作为一名经验丰富的软件开发从业者&#xff0c;我深知游戏崩溃可能由多种因素引…

YOLOv8实战道路裂缝缺陷识别

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对道路裂缝数据集进行训练和优化&#xff0c;该数据集包含丰富的道路裂缝图像样本…

数字赋能 自主创新 | 华望系统科技在2024年度“直通乌镇”全球互联网大赛上斩获大奖!

11月22日&#xff0c;2024年度“直通乌镇”全球互联网大赛颁奖典礼在浙江乌镇举行。杭州华望系统科技有限公司&#xff08;以下简称“华望系统科技”&#xff09;的参赛项目“基于模型的系统工程建模工具软件”先后经过初赛、复赛和决赛的激烈角逐&#xff0c;从来自全球27个国…

代际跃升丨Modbus转Profinet网关与伺服的智能之旅

本案例详细介绍了如何通过开疆智能Modbus转Profinet网关KJ-PNG-201实现GSHD系列高性能伺服驱动器与西门子S7-1200 PLC之间的连接与配置。在这个过程中&#xff0c;我们使用了西门子S7-1200 PLC作为控制核心&#xff0c;Modbus转Profinet网关作为通信桥梁&#xff0c;以及GSHD系…

反转链表||动静态链接

反转链表 II 第一种方法&#xff1a;使用数组顺序记录区间内节点的地址&#xff0c;然后双指针双向向内遍历节点地址&#xff0c;逐步交换节点存储数值。时间复杂度为on、空间复杂度为on class Solution { public:ListNode* reverseBetween(ListNode* head, int left, int ri…

SpringBoot入门:如何新建SpringBoot项目(保姆级教程)

在本文中&#xff0c;我们将演示如何新建一个基本的 Spring Boot 项目。写这篇文章的时候我还是很惊讶的&#xff0c;因为我发现有些java的初学者&#xff0c;甚至工作10年的老员工居然并不会新建一个SpringBoot项目&#xff0c;所以特别出了一篇文章来教大家新建一个SpringBoo…

分代ZGC介绍

背景 在JDK 11中作为实验性功能推出的ZGC&#xff08;JEP 333: ZGC: A Scalable Low-Latency Garbage Collector &#xff09;&#xff0c;经过10个版本的迭代&#xff0c;终于在24年9月GA的JDK 23中将分代模式调整为默认模式&#xff08;JEP 474: ZGC: Generational Mode by …

Flume基础概念

目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源&#xff08;如日志文件、消息队列、网络数据、文件系统、数据库等&#xff09;收集数据&#xff0c;并将…

解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失

问题 easycode插件生成的mapper.xml文件字段之间逗号丢失&#xff0c;如图 解决办法 将easycode(在settings里面的othersettings)设置里面的Template的mapper.xml.vm和Global Config的mybatisSupport.vm的所有$velocityHasNext换成$foreach.hasNext Template的mapper.xml.vm(…

策略模式实战 - 猜拳游戏

**可以整体的替换一套算法&#xff0c;这就是策略模式。**这样对于同一个问题&#xff0c;可以有多种解决方案——算法实现的时候&#xff0c;可以通过策略模式来非常方便的进行算法的整体替换&#xff0c;而各种算法是独立封装好的&#xff0c;不用修改其内部逻辑。 具体的实…

漫画之家Spring Boot:漫画资源的个性化推荐

4 系统设计 4.1系统设计主要功能 通过市场调研及咨询研究&#xff0c;了解了用户及管理者的使用需求&#xff0c;于是制定了管理员和用户等模块。功能结构图如下所示&#xff1a; 图4-1系统功能结构图 4.2数据库设计 4.2.1数据库设计规范 数据可设计要遵循职责分离原则&#…

C++:AVL树

文章目录 一、AVL树的概念二、AVL树的实现1、AVL树的节点2、 AVL的插入的过程3、平衡因子的更新 三、旋转1、右单旋2、左单旋3、右左双旋4、右左双旋 四、AVL树平衡检测五、AVL树查找 一、AVL树的概念 二、AVL树的实现 1、AVL树的节点 key,vaule的二叉搜索树&#xff0c;需要…

Vscode插件 :用于生成文件头部注释和函数注释

最近找到了一个好用的vscode生成注释的插件----koroFileHeader 1.在拓展中搜索&#xff0c;并且安装 2.找到setting.json 设置模板 点击ctrlp(windows and linus),commandp(mac) 输入 > Open Settings 点击第一个选项 并且用以下代码进行覆盖 // 头部注释 "file…

知从科技闪耀汽车智能底盘大会:共探软件安全新篇章

在汽车科技蓬勃发展的浪潮中&#xff0c;智能底盘技术正成为引领行业变革的关键力量。11月27日-28日&#xff0c;盖世汽车 2024 第四届汽车智能底盘大会盛大召开&#xff0c;上海知从科技有限公司受邀出席此次盛会&#xff0c;与众多汽车领域的精英齐聚一堂&#xff0c;共话智能…

LabVIEW密码保护与反编译的安全性分析

在LabVIEW中&#xff0c;密码保护是一种常见的源代码保护手段&#xff0c;但其安全性并不高&#xff0c;尤其是在面对专业反编译工具时。理论上&#xff0c;所有软件的反编译都是可能的&#xff0c;尽管反编译不一定恢复完全的源代码&#xff0c;但足以提取程序的核心功能和算法…

ABAP 类与对象 EXCEPTIONS与RAISE

文章目录 ABAP 类与对象 EXCEPTIONS与RAISE系统示例代码执行结果RAISE的系统文档测试 ABAP 类与对象 EXCEPTIONS与RAISE 系统示例 代码 CLASS cls DEFINITION.PUBLIC SECTION.CLASS-METHODS meth EXCEPTIONS exc. ENDCLASS.CLASS cls IMPLEMENTATION.METHOD meth....RAISE ex…

接第二部分 Advanced Learning Algorithms

接第二部分 Advanced Learning Algorithms 文章目录 接第二部分 Advanced Learning AlgorithmsMachine learning development process(机器学习开发的迭代)Iterative loop of ML development错误分析(error analysis)添加数据(Adding data)迁移学习&#xff1a;使用其他任务中的…