微信小程序api语法及代码实例(入门到精通)

2023-11-19

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。[[点击跳转到网站。]]

小程序Api

App

全局入口,整个小程序项目中,只允许有一个App入口函数。

全局数据

  • globalData:写在全局的js里

  • 使用this.globalData.data

私有的生命周期【全局的生命周期】

  • onLaunch:初始化函数

  • onShow:启动或切换前台

  • onHide:小程序后台运行

Page

私有的生命周期【页面的生命周期】

  • onLoad:页面加载

  • onShow:页面显示

  • onHide:页面隐藏

  • onReady:页面初始化渲染完成

  • onUnload:页面卸载–销毁

Component

  1. 构建自定义组件的,需要在json组件中声明:"component":true之后才可以在page文件中使用。

  2. 使用组件:在page页面的json里引入


    "usingComponents":{
        "wk-header":"/components/header/header"

    }

生命周期

  • created:创建组件的生命周期

小程序语法

渲染数据

  1. 在文档内使用插值的写法{ {}}

  2. 在标签上属性内使用也需要{ {}}

  3. 修改数据使用this.setData({data:newValue})

条件渲染

wx:if,‘wx:else if’,‘wx:else’

//频繁切换使用hidden反之是if
//如果isShow是false那就隐藏反之显示,跟vue的v-if和v-show区别一样
<view hidden="{
   {isShow}}"></view>

循环渲染

wx:for="{ {data}}"

默认在for语法内注入了item变量和index变量;

如果需要修改名字,在元素上使用wx:for-item="别名".

事件绑定

bind:eventType='callback'

移动端没用click事件,对应的是tap事件
事件又分成俩种
冒泡事件

  • 父级标签:bindtap='parentChange'
  • 子集标签:bindtap='childrenChange'

点击子集父级也会执行

非冒泡事件

  • 父级标签:catchtap='parentChange'
  • 子集标签:catchtap='childrenChange'

点击子集父级并不会触发

监听input框实现数据双向绑定

<view>
   <input type="text" value="{
   {msg}}" bindinput="changeInput"/>
</view>
Page({
   
  data: {
   
   msg:"请输入密码"
  },
  changeInput(e:any){
   
    this.setData({
   
      msg:e.detail.value
    })
    console.log(e.detail.value)
  }
})

事件对象的属性列表

当事件回调触发之后,会收到一个·事件对象event,它的详细属性如下:

1.type:字符串类型 事件类型
2.timeStamp:页面打开到触发事件所经过的毫秒数
3.target:对象类型 触发事件组件的一些属性值集合
4.currentTarget:对象类型 当前组件的ixie属性值集合
5.detail:对象类型 额外的信息
6.touchs:数组类型 触摸事件,当前停留在屏幕中的触摸点信息的数组
7.changedTouches:数组类型 触摸事件,当前变化的触摸点信息的数组

target是触发该事件的源头组件,currentTarget是指当前事件所绑定的组件

事件传参

可以为组件上提供data-自定义属性传参,其中代表的是参数名字,引号内的内容是参数值

<button type="button" data-info="{
   {2}}" bindtap="btnHandel"></button>
 <text>{
   {
   num}}</text>

可以通过event.target.dataset.参数名字来拿到具体参数的值

Page({
   
  data: {
   
   num:0
  },
  btnHandel(event:any){
   
    this.setData({
   
      num:event.target.dataset.info
    })
  }
})

`

路由

声明式导航跳转

注意事项:url地址必须以/开头

 //跳转到tabbar页面
 <navigator url="/pages/message/message" open-type="switchTab">跳转tabbar页面</navigator>
 //跳转到非tabbar页面
  <navigator url="/pages/message/message" open-type="navigate">跳转非tabbar页面</navigator>
 //后退到上一级或者多级   delta表示后退的层级
   <navigator url="/pages/message/message" open-type="navigateBack" delta="1">后退</navigator>

编程式导航跳转

例子:

parent(){
   
    wx.navigateTo({
   
          url: '../logs/logs'
        })
  },

wx.switchTab(Object object)

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

wx.reLaunch(Object object)

关闭所有页面,打开到应用内的某个页面

wx.redirectTo(Object object)

关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面

属性

url string 是 需要跳转的 tabBar 页面的路径 (代码包路径)(需在 app.json 的 tabBar 字段定义的页面),路径后不能带参数 **

success function 否 接口调用成功的回调函数

fail function 否 接口调用失败的回调函数

complete function 否 接口调用结束的回调函数(调用成功、失败都会执行

wx.navigateTo(Object object)

保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。

比前三个多出一个属性

events Object 否 页面间通信接口,用于监听被打开页面发送到当前页面的数据。基础库 2.7.3 开始支持。

wx.navigateBack(Object object)

关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈

属性将url替换成了

delta number 1 否 返回的页面数,如果 delta 大于现有页面数,则返回到首页

导航传参

声明式导航传参

1. 参数与路径之间用?隔开
2. 参数名与参数值用等号链接
3. 不同参数用&分割

  <navigator url="/pages/message/message?name=zs&age=20" open-type="navigate">声明式传参</navigator>

编程式导航传参

fn(){
   
	wx.navigateTo({
   
		url:"/pages/message/messgae?name=ls&age=33"
	})
}

内置的网络请求

wx:request({})写法和jq.ajax几乎一样,但是小程序中不存在跨域问题

出于安全考虑微信小程序官方对数据接口做了限制,只能请求https类型的接口,而且必须将接口域名添加到详情中的合法域名信任列表中;如果要配置多个则用;号隔开

如何配置request合法域名

配置步骤如下:

  1. 登录微信小程序管理后台
  2. 开发
  3. 开发设置
  4. 服务器域名
  5. 修改request合法域名

注意事项:域名只支持https协议;域名不能使用ip地址或者localhost;域名必须经过icp备案;服务器域名一个月只能修改5次

如果在开发或者调试过程中后端暂时没有提供https域名接口只有http接口,那么我们可以在微信开发者工具中勾选开发环境不校验请求域名...即可

发起get请求

wx.request({
   
	url:'',//请求的接口地址
	method:'GET'//请求的方式
	data:{
   
		name:"zyb",
		age:23
	},
	success:(res)=>{
   //请求成功以后的回调函数
		console.log(res)//返回的数据
	}
})

发起post请求

wx.request({
   
	url:'',//请求的接口地址
	method:'POST'//请求的方式
	data:{
   
		name:"zyb",
		age:23
	},
	success:(res)=>{
   //请求成功以后的回调函数
		console.log(res)//返回的数据
	}
})

小程序事件对象传参方式

1、id传参

只能传递一个值
标签上使用id属性进行传递
事件中使用event.currentTarget.id进行接收

2、data传参

可以传递多个值
标签上使用bind-key 进行传递
事件中使用event.currentTarget.key进行接收

3、mark传参

mark 会包含从触发事件的节点到根节点上所有的 mark
标签上使用mark: key="value"进行传递
事件中使用event.mark.key进行接收

小程序中像素单位rpx原理

因为不同设备的屏幕大小不同,为了能够实现屏幕的自动适配,rpx把所有的屏幕在宽度上都等分为750份
从而实现在较小的设备上1rpx显示的宽度较小,在较大设备上显示的1rpx宽度较大

px和rpx的单位换算

例子:在iphone6手机上屏幕宽度为375px,共有750个物理像素等分为750rpx,则:750rpx=375px/1rpx=0.5px

下拉刷新

注意事项:开启下拉刷新之后模拟器下拉刷新会自动停止下拉刷新,真机不会自动停止,需要手动处理

启动下拉刷新的俩种方式:

全局开启:在app.json的window节点中设置enablePullDownRefresh设置为true
局部开启:在页面的json文件中设置enablePullDownRefresh设置为true

监听页面的下拉刷新事件onPullDownRefresh

小例子:点击按钮实现自增加一,刷新之后将count重置为0

  data: {
   
   count:0//初始值
  },
  //监听下拉刷新
onPullDownRefresh(){
   
    this.setData({
   
      count:0
    })
  },
  //点击自增加一的事件
  add(){
   
    this.setData({
   
      count:this.data.count+1
    })
  }

停止下拉刷新

  onPullDownRefresh(){
   
    this.setData({
   
      count:0
    })
    //调用微信提供的api事件
    wx.stopPullDownRefresh()
  },

上拉触底


                
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序api语法及代码实例(入门到精通) 的相关文章

  • Python中的filter()函数

    目录 一 描述 语法 返回值 二 实例 1 过滤出列表中的所有奇数 2 过滤出1 100中平方根是整数的数 一 描述 英文文档 filter function iterable Construct an iterator from thos

随机推荐

  • 01-----tcpdump抓包命令

    一 tcpdump抓包命令 关于tcpdump的抓包命令 非常的多 这里我只记录我平时开发时比较常用的抓包命令 当然后面可能不断的在本篇补上对应的内容 1 tcpdump的命令格式 tcpdump adeflnNOpqStvx c 数量 F
  • 大数据毕业设计 深度学习图像检索算法研究与实现 - python

    文章目录 0 前言 1 课题简介 2 图像检索介绍 1 无监督图像检索 2 有监督图像检索 3 图像检索步骤 4 应用实例 5 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答
  • oh-my-zsh的各种主题展示,你喜欢哪一个?

    pygmalion virtualenv blink mrtazz sonicradish skaro linuxonly gnzh tjkirch 带时间
  • 物联网毕设分享 - stm32单片机酒精浓度酒驾检测系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 MQ 3酒精乙醇传感器模块 SIM800C模块 5 软件说明 系统框图 6 部分核心代码 7 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕
  • cityscapes和foggy_cityscapes数据集使用记录

    cityscapes和foggy cityscapes数据集使用记录 cityscapes 数据集介绍 下载数据集 cityscapes转voc格式 foggy cityscapes 下载数据集 foggy cityscapes转voc格式
  • linux drm 架构 基础

    一 简介 DRM 英文全称Digital Rights Management 可以翻译为 数字版权管理 由于数字化信息的特点决定了必须有另一种独特的技术 来加强保护这些数字化的音视频节目内容 文档 电子书籍的版权 该技术就是数字权限管理技术
  • PAT (Basic Level) Practice (中文) B1034 有理数四则运算 (20 分)(C++)(分数四则运算)

    1034 有理数四则运算 20 分 本题要求编写程序 计算 2 个有理数的和 差 积 商 输入格式 输入在一行中按照 a1 b1 a2 b2 的格式给出两个分数形式的有理数 其中分子和分母全是整型范围内的整数 负号只可能出现在分子前 分母不
  • openGL之API学习(一九三)glGenTextures

    生成纹理单元名 单元名不一定是连续的 但是没有使用的 单元名是相对GL TEXTURE0的 对于单元名1 其实是GL TEXTURE0 1 glGenTextures产生的是一个比较小的整数id 纹理单元名 glActiveTexture激
  • 三分钟带你搞懂分布式链路追踪系统原理

    分布式系统为什么需要链路追踪 随着互联网业务快速扩展 软件架构也日益变得复杂 为了适应海量用户高并发请求 系统中越来越多的组件开始走向分布式化 如单体架构拆分为微服务 服务内缓存变为分布式缓存 服务组件通信变为分布式消息 这些组件共同构成了
  • 前端学习——JavaScript原生实现购物车案例

    一 购物车案例 1 1 案例介绍 今天我们来写另外一个购物车案例 说实话对于我来说这个是花了将近三个小时的时间然后才做出来的 里面可能还存在一些我没有发现的问题 但是能完成基本的功能 对于一些基本的需求都是可以完成的 下面照旧是案例实现的g
  • [Python] wxPython 状态栏组件、消息对话框组件 学习总结(原创)

    1 状态栏组件 1 基本介绍 上图 红框框内的就是状态栏 他可以分成若干个区块 比如上者分为了两个区块 并且比例是固定的 创建时可以指定 每个区块都能够显示 信息 一般通过 绑定事件 实时更新 各个区块的内容 因为状态栏本身 组件 所以除了
  • Dubbo与SpringCloud的区别

    首先来看一个表格 Dubbo 和 SpringCloud 对比 Dubbo SpringCloud 服务注册中心 Zookeeper Spring Cloud Netfilx Eureka 服务调用方式 RPC REST API 服务监控
  • Mysql从入门到精通 (innodb 引擎 锁超时查看以及设置)

    1 查看innodb引擎锁超时时间 show variables like innodb lock wait timeout 2 设置锁超时时间 set innodb lock wait timeout 5 3 代码验证 两个窗口同时开启事
  • tensorflow gpu利用率低_TensorFlow 模型优化工具 — float16 量化将模型体积减半

    我们很高兴在模型优化工具包中添加训练后的半精度浮点量化 float16 quantization 此工具套件包含混合量化 hybrid quantization 训练后整形量化 full integer quantization 和剪枝 p
  • 双向长短期记忆网络(Bi-LSTM)

    在开始之前 首先区分下均命名为RNN 新手很容易混淆的两大神经网络 循环神经网络 Recurrent Neural Network RNN 和递归神经网络 Recurssion Neural Network RNN 递归神经网络 RNN 是
  • 跨时钟域处理方法(一)——打拍

    一 说明 处理跨时钟域的数据可以分为单bit数据和多bit数据 而打拍的方法主要常见于处理单bit数据的跨时钟域问题 打拍的本质是通过添加寄存器 对输入的数据进行延拍 其主要目标是消除亚稳态的影响 常见的是打2拍 也就是添加2级寄存器 二
  • 基于STM32单片机驱动HX711的代码分享,仅供参考

    最近在搞一个需要加入称重模块的项目 在调试的时候也是遇到了很够狗血的问题 也参考了别的工程师的设计 所以 闲话少叙 上代码 HX711 Dout PB9 HX711 SCK PB8 include hx711 h uint32 t HX71
  • 字符串转整形数据

    c 语言字符转化为数字的函数有 atof 将字符串转换为双精度浮点型值 atoi 将字符串转换为整型值 atol 将字符串转换为长整型值 strtod 将字符串转换为双精度浮点型值 并报告不能被转换的所有剩余数字 strtol 将字符串转换
  • 竞赛选题 卷积神经网络手写字符识别 - 深度学习

    文章目录 0 前言 1 简介 2 LeNet 5 模型的介绍 2 1 结构解析 2 2 C1层 2 3 S2层 S2层和C3层连接 2 4 F6与C5层 3 写数字识别算法模型的构建 3 1 输入层设计 3 2 激活函数的选取 3 3 卷积
  • 微信小程序api语法及代码实例(入门到精通)

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网站 小程序Api App 全局入口 整个小程序项目中 只允许有一个App入口函数 全局数据 globalData 写在全局的js里 使用this