当前位置: 首页 > news >正文

微信小程序开发

文章目录

  • 1 开发准备工作
  • 2 小程序开发工具使用
  • 3 初始化项目
  • 4 index页静态搭建
  • 5 数据绑定
    • 5.1 初始化数据
    • 5.2 使用数据
    • 5.3 修改数据
  • 6 数据绑定---小程序,Vue,React
  • 7 事件绑定
    • 7.1 事件分类
    • 7.2 绑定事件
    • 7.3 向事件对象传参
    • 7.4 补充:事件流的三个阶段
  • 8 路由跳转
  • 9 生命周期✨
  • 10 获取用户基本信息
  • 11 条件渲染
    • 11.1 语法说明
    • 11.2 wx:if VS hidden

1 开发准备工作

  1. 注册小程序账号
  2. 安装开发者工具
  3. 掌握flex,移动端布局

2 小程序开发工具使用

在这里插入图片描述
在这里插入图片描述
主要文件结构
在这里插入图片描述

3 初始化项目

在这里插入图片描述

4 index页静态搭建

在这里插入图片描述

结构有了,再写样式
取一下类名

打开样式,开始写样式

width: 200rpx;
height: 200rpx;

这里要控制适配,随机型的不同,大小适配,使用rpx, 我们要设置100px,(2 rpx = 1px),则为 200rpx

5 数据绑定

5.1 初始化数据

  1. 页面.js 的 data 选项中
  2. 小程序要的数据都会从这里来

5.2 使用数据

  1. 模板结构中使用双大括号 {{message}}
  2. 注意事项: 小程序中为单项数据流 model —> view
    在这里插入图片描述

数据不是一成不变,后期我们还会去修改数据

5.3 修改数据

  1. this.setData({message: ‘修改之后的数据’}, callback)
  2. 特点:
    a) 同步修改: this.data 值被同步修改
    b) 异步更新: 异步将 setData 函数用于将数据从逻辑层发送到视图层(异步)
    在这里插入图片描述

6 数据绑定—小程序,Vue,React

  1. 小程序
    1. data中初始化数据
    2. 修改数据: this.setData()
      1. 修改数据的行为始终是同步的
    3. 数据流:
      1. 单项: Model —> View
  2. Vue
    1. data中初始化数据
    2. 修改数据:this.key = value
    3. 数据流:
      1. Vue是单项数据流: Model —> View
      2. Vue中实现了双向数据绑定: v-model
  3. React
    1. state中初始化状态数据
    2. 修改数据: this.setState()
      1. 自身钩子函数中(componentDidMount)异步的
      2. 非自身的钩子函数中(定时器的回调)同步的
    3. 数据流:
      1. 单项: Model —> View

7 事件绑定

7.1 事件分类

  1. 冒泡事件
    a) 定义:冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
    b) 冒泡事件列表:
    https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html
  2. 非冒泡事件
    a) 定义:当一个组件上的事件被触发后,该事件不会向父节点传递
    b) 非冒泡事件:表单事件和自定义事件通常是非冒泡事件
    https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html

7.2 绑定事件

  1. bind 绑定:事件绑定不会阻止冒泡事件向上冒泡
<view bindtap="handleTap" class='start_container'><text class='start'>开启小程序之旅</text>
</view>
  1. catch 绑定: 事件绑定可以阻止冒泡事件向上冒泡
    举例
    绑定bind 事件(点击谁触发谁,并且向上冒泡)
    在这里插入图片描述
    在这里插入图片描述
    绑定catch 事件(点击谁只触发谁,不冒泡)
    在这里插入图片描述

7.3 向事件对象传参

  1. 语法: ata-key=value
  2. 获取: event.target.dataset.key || event.currentTarget.dataset.key
  3. Event.targetevent.currentTarget 的区别
    a) Event.target 是触发事件的对象,但不一样是绑定事件的对象,如: 事件委托,
    冒泡
    b) currentTarget 触发时间的对象一定是绑定事件的对象, 没有事件委托

7.4 补充:事件流的三个阶段

  1. 捕获: 从外向内
  2. 执行目标阶段
  3. 冒泡: 从内向外

最开始从外面向里面捕获,不会执行事件,到达目标事件,再执行,执行完再接着向外执行(冒泡),到父节点

8 路由跳转

在这里插入图片描述
点击hello world处就跳转过来了
在这里插入图片描述
可回退
在这里插入图片描述
还有一些别的路由跳转,可以参考官网
https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.redirectTo.html
在这里插入图片描述

补充:
在这里插入图片描述

9 生命周期✨

官网:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html

以下内容你不需要立马完全弄明白,不过以后它会有帮助。

下图说明了页面 Page 实例的生命周期。

在这里插入图片描述
详细过程解释:
在这里插入图片描述
在这里插入图片描述

10 获取用户基本信息

案例:点击button, 获取用户信息,展示出来
类似下图:
在这里插入图片描述
官网:https://developers.weixin.qq.com/miniprogram/dev/component/button.html
在这里插入图片描述

  1. 使用open-type="getUserInfo"点击获取,弹窗
    在这里插入图片描述

  2. 点击之后弹出:
    在这里插入图片描述

  3. 授权后再点不会弹出,需要清理缓存后才能二次使用

我们怎么获得到用户信息的?
4. 使用bindgetuserinfo绑定一个回调,获取数据
在这里插入图片描述
5. 写相应的回调,之后打印获取的结果可以看到,获取到了数据
在这里插入图片描述
在这里插入图片描述
6. 之后,我们再去把获取数据的存在data里面

在这里插入图片描述
上面是没点击允许的情况
7. 点击获取信息,存到data
在这里插入图片描述
数据有了,接下来是显示到页面上

  1. 把data存的数据显示到页面上
    在这里插入图片描述
    在这里插入图片描述
    上面的操作是首次登录

下次登录信息就要重新获取?
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html

在这里插入图片描述
小结

  1. 用户未授权(首次登陆)
    1. button open-type=‘getUserInfo’
  2. 用户已经授权(再次登陆)
    1. wx.getUserProfile

早期用的wx.getUserInfo现在弃用了,一切以官网文档为主

上面存在问题,我们授权显示用户信息后,应该隐藏掉这个按钮
在这里插入图片描述
这里使用条件渲染

11 条件渲染

上面的案例解决:
在这里插入图片描述

11.1 语法说明

  1. wx:if=’条件’
  2. wx:elif=’条件’
  3. wx:else
    在这里插入图片描述

11.2 wx:if VS hidden

  1. hidden 用法: <view hidden=’{{true}}’ ></view>
  2. wx:if 等同于 v-if, 条件为 false 的时候不加载,条件切换的时候决定元素销毁或者
    重新加载渲染
  3. hidden 等同于 v-show, 始终加载元素, 条件切换的时候决定元素的显示和隐藏

剩下的知识点到项目中体现

可以去vscode里面书写代码,更方便书写,开发者工具预览

在这里插入图片描述

相关文章:

微信小程序开发

文章目录 1 开发准备工作2 小程序开发工具使用3 初始化项目4 index页静态搭建5 数据绑定5.1 初始化数据5.2 使用数据5.3 修改数据 6 数据绑定---小程序&#xff0c;Vue&#xff0c;React7 事件绑定7.1 事件分类7.2 绑定事件7.3 向事件对象传参7.4 补充&#xff1a;事件流的三个…...

number类型超出16位的问题(前端、后端处理)

目录 1、前端解决方案 1.1 甩链接 1.2 接口返回数据过程中将数据处理为字符串&#xff08;过过嘴瘾&#xff09; 1.3 对返回的json字符串进行数据预处理代码如下 2、后端解决方案 2.1 toString、String、 、new String() 自己悟、就是要改的地方多。 2.2拦截器 (可能超出…...

【高并发】网络模式

I/O 多路复用 多线程创建 服务器的主进程负责监听客户的连接&#xff0c;一旦与客户端连接完成&#xff0c;accept() 函数就会返回一个「已连接 Socket」&#xff0c;这时就通过 fork() 函数创建一个子进程&#xff0c;实际上就把父进程所有相关的东西都复制一份&#xff0c;…...

springboot+dubbo+zookeeper 项目实战

现在有一段代码再前台&#xff0c;后台系统中都存在&#xff0c;都需要这段代码&#xff0c;存在这种情况&#xff0c;我们可以选择将这段代码提取出来作为一个服务&#xff0c;让前台和后台系统作为消费者远程调用这段代码&#xff0c;提高了代码的复用性。 springboot集成dub…...

PHP学习笔记第一天

前言 作者简介&#xff1a;不知名白帽&#xff0c;网络安全学习者。 博客主页&#xff1a;不知名白帽的博客_CSDN博客-网络安全,CTF,内网渗透领域博主 网络安全交流社区&#xff1a;https://bbs.csdn.net/forums/angluoanquan 目录 PHP语法 基本的PHP语法 PHP的数据类型 PH…...

案例研究|萤石网络通过JumpServer解决安全运维难题

杭州萤石网络股份有限公司&#xff08;以下简称为萤石网络&#xff09;于2015年在杭州成立&#xff0c;是安全智能生活主流品牌&#xff0c;核心产品包括智能家居摄像头、智能门锁、智能服务机器人等。2021年&#xff0c;萤石网络家用摄像头占国内出货量市场份额的25%&#xff…...

即时聊天app开发-即时通讯app开发方案分析

如今&#xff0c;即时聊天APP层出不穷&#xff0c;它已经成为人们日常生活中密不可分的社交工具。如今&#xff0c;即时聊天APP不仅是聊天工具&#xff0c;也是企业营销的利器。我们经常可以在聊天主页上看到一些广告。如有必要&#xff0c;用户可以直接点击广告了解详情。即时…...

js为什么会阻塞渲染, 什么是异步?

javaScript 是单线程执行的语言&#xff0c;它的执行机制是基于事件循环模型的。当 JavaScript 执行代码时&#xff0c;如果遇到阻塞&#xff08;如执行时间较长的代码、同步的网络请求、计算密集型操作等&#xff09;&#xff0c;则会阻塞 JavaScript 引擎的执行&#xff0c;直…...

Nuvoton NK-980IOT开发板 u-boot 编译

前言 最近搭建了 Nuvoton NK-980IOT开发板 的开发编译环境&#xff0c;记录一下 u-boot 的 编译流程 Nuvoton NK-980IOT开发板 资源还是比较的丰富的&#xff0c;可以用于 嵌入式Linux 或者 RT-Thread 的学习开发 开发板上电比较的容易&#xff0c;两根 USB 线即可&#xff0…...

OpenCL使用CL_MEM_USE_HOST_PTR存储器对象属性与存储器映射

随着OpenCL的普及&#xff0c;现在有越来越多的移动设备以及平板、超级本等都支持OpenCL异构计算。而这些设备与桌面计算机、服务器相比而言性能不是占主要因素的&#xff0c;反而能耗更受人关注。因此&#xff0c;这些移动设备上的GPU与CPU基本都是在同一芯片上&#xff08;So…...

浅谈osgEarth操控器类的createLocalCoordFrame函数如何将局部坐标系的点转为世界坐标系下的Martix(ENU坐标)

在osgEarth操控器类的EarthManipulator中的如下函数&#xff1a; void EarthManipulator::setLookAt(const osg::Vec3d& center,double azim,double pitch,double range,const osg::Vec3d& posOffset) {setCenter( center );.... //…...

PHP程序员和Python程序员的职业前景怎么样?我来聊聊自己的体会

大家好&#xff0c;今天我们来聊一下程序员这个职业的特点。在讲这个话题之前&#xff0c;我先说一下我自己的情况&#xff1a;我在福州和深圳做了8年左右的程序员&#xff0c;然后回到老家&#xff0c;在家里面为福州的一个公司做远程开发。目前已经在老家做了将近3年。 今天…...

【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法

目录 一、背景意义二、基本原理三、算法介绍3.1 数字水印嵌入3.2 数字水印提取 四、程序实现 一、背景意义 数字水印技术作为信息隐藏技术的一个重要分支&#xff0c;是将信息(水印)隐藏于数字图像、视频、音频及文本文档等数字媒体中&#xff0c;从而实现隐秘传输、存储、标注…...

最全的免费SSL证书申请方式

在SSL广泛普及的今天&#xff0c;申请一张免费的SSL证书是一件非常容易的事情。这里为大家总结当前阶段(2023年)拥有一张免费SSL证书的方式。首推的方式为来此加密网站&#xff0c;文章后面会有详细的介绍。 下面介绍几种获取免费SSL证书的方式&#xff0c;大家可以根据自己的…...

Ceph入门到精通-CrushMap算法概述

下面是伪代码object到osd的伪代码 locator =object_name obj_hash =hash(locator) pg =obj_hash %num_pg OSDs_for_pg =crush(pg) # returns a list of OSDs primary =osds_for_pg[0] replicas =osds_for_pg[1:] defcrush(pg): all_osds=[osd.0,osd.1,osd.2,...] resu…...

如何利用API做好电商,接口如何凋用关键字

一.随着互联网的快速发展&#xff0c;电子商务成为了众多企业的首选模式&#xff0c;而开放API则成为了电商业务中不可或缺的部分。API&#xff08;Application Programming Interface&#xff09;&#xff0c;即应用程序接口&#xff0c;是软件系统不同组件之间交互的约定。电…...

Give me a logic game idea about economics

Here’s an logic game idea about economics: Game name: “Economics Tycoon” Game Objective: Build an economic empire and grow from a small business owner to a global tycoon. Gameplay: Start with a small business and limited resources. Manage your compa…...

测试之路,2023年软件测试市场领域有哪些变化?突破走得更远...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…...

配置Windows终端直接执行Python脚本,无需输入“python“

配置Windows终端直接执行Python脚本&#xff0c;无需输入"python" 1. 将Python加入环境变量2. 将Python后缀加入环境变量PATHEXT中3. 修改Python脚本的默认打开方式4. *将Python脚本命令加入环境变量*5. 测试 在Linux系统中&#xff0c;在Python脚本的开头指定Python…...

IDEA快捷键

文章目录 快捷键介绍重点掌握CtrlAltShiftCtrl AltCtrl ShiftAlt ShiftCtrl Shift Alt其他 快捷键介绍 重点掌握 psvmmain函数sout输出soutv带变量名输出.sout变量.调用 输出变量值.if布尔值.调用 生成if语句.for数组类型变量.for 生成for语句.var补全接收的变量&#x…...

关于c++指针数组的要设置初值的情况

在大多数情况下&#xff0c;都应该对指针数组进行初始化&#xff0c;以避免出现未知的值和潜在的未定义行为。指针数组在定义时必须指定元素个数&#xff0c;如果未指定元素值&#xff0c;则需要对其进行显式初始化。如果未初始化数组&#xff0c;则未知的值可能指向无效的内存…...

泰克RSA306B频谱分析仪测试信道功率方法

泰克RSA306B实时频谱分析仪是一种用于无线信号分析的仪器。它可以实时监控无线信号的频谱&#xff0c;帮助用户分析信号特征&#xff0c;掌握信号的功率、频率、调制等关键信息。在无线通信中&#xff0c;信道功率是一个非常重要的指标&#xff0c;它反映了信号在传输过程中的强…...

深度学习技巧应用12-神经网络训练中批归一化的应用

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用12-神经网络训练中批归一化的应用,在深度学习中,批归一化(Batch Normalization,简称BN)是一种重要的技巧,它在许多神经网络中都得到了广泛应用。本文将详细介绍批归一化的原理和应用,并结合PyTorch框架构建一个简…...

Masonry使用以及源码解析(未完待续

文章目录 Masonry使用约束约束优先级 以及 intrinsicContentSize相关问题 Masonry:iOS12Masonry源码解析下面是使用make.width点语法后的全部内部调用过程&#xff1a; Masonry使用 约束 在写Masonry之前&#xff0c;我想先来聊聊约束的基础知识&#xff0c;我们首先要了解一…...

118-Linux_数据库_索引

文章目录 一.索引是什么?二.索引为什么选择b树三.测试索引1.在mysql中创建数据库 test_indexdb2.在test_indexdb中创建表 test_index3.运行程序向表中插入1万条数据&#xff0c;都是字符串4. 查询验证 一.索引是什么? 索引是一种特殊的文件&#xff0c;它包含着对数据表里所…...

macos和windows区别 macos怎么运行windows程序

在我们使用电脑时&#xff0c;重要的是电脑内应用&#xff0c;而系统不过是运行软件的“容器”。日常生活中&#xff0c;我们常见的操作系统是macos和windows&#xff0c;那么macos和windows区别在哪&#xff1f;这两款操作系统的区别很大。macos怎么运行windows程序&#xff1…...

一起Talk Android吧(第五百四十二回:无进度值ProgressBar)

文章目录 概念介绍使用资源文件实现使用默认设置修改风格使用动画资源 使用代码实现经验总结 各位看官们大家好&#xff0c;上一回中咱们说的例子是"ProgressBar总结",本章回中介绍的例子是" 无进度值ProgressBar"。闲话休提&#xff0c;言归正转&#xf…...

Oracle DataGuard奇怪的ORA-16494错误

Oracle数据库DataGuard数据无法同步&#xff0c;主库查询v$archive_dest出现ORA-16494错误。 数据库版本Oracle 12.1.0.2.0&#xff1a; SQL> select * from v$version;BANNER --------------------------------------------------------------------------------CON_ID --…...

《花雕学AI》Poe 一站式 AI 工具箱:ChatGPT4 体验邀请,亲,不要错过哦!

你有没有想过&#xff0c;如果你能在同一个平台上体验多种不同的 AI 模型&#xff0c;和他们进行有趣、有用、有深度的对话&#xff0c;甚至还能轻松地分享你的对话给其他人&#xff0c;那该有多好&#xff1f;如果你有这样的想法&#xff0c;那么你一定不能错过 Poe 一站式 AI…...

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘

terminal运行报错AttributeError: module lib has no attribute X509_V_FLAG_CB_ISSUER_CHECK 解决&#xff1a; pip install pyOpenSSL --upgrade...