微信小程序(视图与逻辑)

news/2024/7/20 0:48:05 标签: 微信小程序, 小程序, 前端, 经验分享, 微信

微信小程序>微信小程序

  • 1、小程序--视图与逻辑
    • 1.1 页面导航
    • 1.2 页面事件
    • 1.3 生命周期
    • 1.4 WXS脚本

1、小程序–视图与逻辑

1.1 页面导航

  • 页面导航指页面之间的相互跳转

  • 小程序实现页面导航的两种方式:

    • 声明式导航

      • 在页面上声明一个< navigator>导航组件;通过点击< navigator>组件实现页面跳转
      • 导航到tabBar页面
      //页面地址必须以/开头
      //必须指定跳转方式,为switchTab
      <navigator url="/pages/message/message" open-type="switchTab">导航消息页面</navigator>
      
      • 导航到非tabBar页面
      //页面地址必须以/开头
      //指定跳转方式,为navigate,可省略
      <navigator url="/pages/info/info" open-type="navigate">导航到info页面</navigator>
      
      • 后退导航
      //open-type的值必须是navigateBack,表示要进行后退导航
      //delta的值必须是数字,表示要后退的层级,可省略,默认值为1
      <navigator open-type="navigateBack" delta="1">后退</navigator>
      
    • 编程式导航

      • 调用小程序的导航API,实现页面的跳转
      属性类型是否必选说明
      urlstring需要跳转的页面的路径,路径后不能带参数
      successfunction接口调用成功的回调函数
      failfunction接口调用失败的回调函数
      completefunction接口调用结束的回调函数(调用成功、失败都会执行)
      • 导航到tabBar页面
      //wxml
      <button bindtap="gotoMessage">跳转到消息页面</button>
      
      //js
      gotoMessage(){
          wx.switchTab({
              url:'/pages/message/message'
          })
      }
      
      • 导航到非tabBar页面
      //wxml
      <button bindtap="gotoInfo">跳转到信息页面</button>
      
      //js
      gotoInfo(){
        wx.navigateTo({
          url: '/pages/info/info'
        })
      },
      
      • 后退导航
      属性类型默认值是否必选说明
      deltanumber1返回的页面数,如果 delta 大于现有页面数,则返回到首页
      successfunction接口调用成功的回调函数
      failfunction接口调用失败的回调函数
      completefunction接口调用结束的回调函数(调用成功、失败都会执行)
      //wxml
      <button bindtap="gotoBack">后退</button>
      
      //js
      gotoBack(){
          wx.navigateBack({
        })
      }
      
  • 导航传参

    • 声明式导航传参

      • 路径后面携带参数:
        • 参数与路径之间使用**?**
        • 分隔参数与参数用**=**相连
        • 不同参数用**&**分隔
      <navigator url="/pages/info/info?name=zs&age=20">跳转到info页面</navigator>
      
    • 编程式导航传参

      //wxml
      <button bindtap=gotoInfo2">跳转到info页面</button>
      
      //js
      gotoInfo2(){
          wx.navigateTo({
      	ur1: " /pages/infolinfo?name=ls&gender=男"
        })
      }
      
    • 在onLoad中接收导航参数

    onLoad:function(options){
        //options即导航传递过来的参数对象
        console.log(options)
    }
    

1.2 页面事件

下拉刷新事件

  • 通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为

  • 启用下拉刷新的方式:

    • 全局开启下拉刷新(app.json的windows结点设置)
    • 局部开启下拉刷新(页面的.json中配置)
    • 实际开发中为需要的页面单独开启下拉刷新的效果
  • 监听页面的下拉刷新事件

    • 在页面的.js文件中,通过 **onPullDownRefresh()**函数即可监听当前页面的下拉刷新事件
    onPullDownRefresh() {
        console.log('触发下拉刷新事件')
        wx.stopPullDownRefresh()
      },
    
  • 停止下拉刷新的效果

    • 调用**wx.stopPullDownRefresh()**可以停止当前页面的下拉刷新

上拉触底事件

  • 通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为
  • 监听页面的上拉触底事件
    • 在页面的.js文件中,通过onReachBottom()函数即可监听当前页面的上拉触底事件(节流 – 在data 中定义isloading节流阀;在方法中修改isloading节流阀的值;在onReachBottom 中判断节流阀的值,从而对数据请求进行节流控制)
  • 配置上拉触底距离
    • 触发上拉触底事件时,滚动条距离页面底部的距离,在全局或页面的.json配置文件中,通过onReachBottomDistance属性来配置上拉触底的距离

1.3 生命周期

  • 小程序中,生命周期分为两类,分别是:

    • 应用生命周期(范围较大)特指小程序从启动->运行->销毁的过程
    • 页面生命周期(范围较小)特指小程序中,每个页面的加载->渲染->销毁的过程
  • 生命周期函数:是由小程序框架提供的内置函数,会伴随着生命周期,自动按次序执行,允许程序员在特定时间点执行某些特定的操作

  • 生命周期强调的是时间段生命周期函数强调的是时间点

  • 应用生命周期函数

//app.js 文件
App({
	//小程序初始化完成时,执行此函数,全局只触发一次。可以做一些初始化的工作
    onLaunch: function(options) { },
    //小程序启动,或从后台进入前台显示时触发。
    onShow : function(options) { },
    //小程序从前台进入后台时触发。
	onHide : function() { }
})
  • 页面生命周期函数
//页面的.js 文件
Page({
	onLoad : function(options) { },//监听页面加载,一个页面只调1次
    onshow : function() { },//监听页面显示
	onReady : function() { }//监听页面初次渲染完成,一个页面只调用1次
	onHide: function() { },//监听页面隐藏
	onUnload: function(){ } //监听页面卸载,一个页面只调用1次
})

1.4 WXS脚本

概述

  • WXS (WeiXin Script)是小程序独有的一套脚本语言,结合WXML,可以构建出页面的结构

  • WXML中无法调用在页面的.js中定义的函数,但是,WXML中可以调用WXS中定义的函数

  • WXS与JavaScript的关系

    • wxs有自己的数据类型

      • number数值类型、string字符串类型、boolean布尔类型、object对象类型、function函数类型、array数组类型、date日期类型、regexp 正则
    • wxs不支持类似于ES6及以上的语法形式

      • 不支持: let. const、解构赋值、展开运算符、箭头函数、对象属性简写、etc…
      • 支持: var定义变量、普通function函数等类似于ES5的语法
    • wxs遵循CommonJS规范

      • module对象、require()函数、module.exports对象

基础语法

  • 内嵌wxs脚本
  • 外联wxs脚本

wxs的特点

  1. 大量借鉴JavaScript的语法(但是是两种不同的语言)
  2. 不能作为组件的事件回调(配合Mustache语法使用)
  3. 隔离性(不能调用js定义的函数及小程序提供的API)
  4. 性能好(iOS上比js快2-20倍)

http://www.niftyadmin.cn/n/139884.html

相关文章

从零开始的JSON库(1):启程

1. JSON 是什么 JSON&#xff08;JavaScript Object Notation&#xff09;是一个用于数据交换的文本格式&#xff0c;现时的标准为ECMA-404 。 虽然 JSON 源自于 JavaScript 语言&#xff0c;但它只是一种数据格式&#xff0c;可用于任何编程语言。现时具有类似功能的格式有X…

牛客小白月赛68

牛客小白月赛68A Tokitsukaze and New OperationB Tokitsukaze and Order Food DeliveryC Tokitsukaze and Average of SubstringD Tokitsukaze and Development TaskE Tokitsukaze and Colorful ChessboardF Tokitsukaze and New RenKinKama题目链接A Tokitsukaze and New Ope…

【java】Java 中泛型的实现原理

文章目录前序1. 泛型1.1 泛型方法1.2 泛型类1.3 泛型接口2. 泛型的基本原理3. 小结前序 泛型是 Java 开发中常用的技术&#xff0c;了解泛型的几种形式和实现泛型的基本原理&#xff0c;有助于写出更优质的代码。本文总结了 Java 泛型的三种形式以及泛型实现原理。 1. 泛型 …

Python的Scrapy框架入门教程

前言&#xff1a; Scrapy是一个基于Python的Web爬虫框架&#xff0c;可以快速方便地从互联网上获取数据并进行处理。它的设计思想是基于Twisted异步网络框架&#xff0c;可以同时处理多个请求&#xff0c;并且可以使用多种处理数据的方式&#xff0c;如提取数据、存储数据等。…

PCA-APCA-MLR

全称 principal component analysis-absolute principal component score-multiple linear regression 原理 绝对因子分析/多元线性回归受体模型(APCS—MLR)的基本原理是将因子分析的主因子得分转化为绝对主因子得分(APCS),各指标含量再分别对所有的APCS进行多元线性回…

JavaScript Math(算数)对象

Math&#xff08;算数&#xff09;对象的作用是&#xff1a;执行常见的算数任务。在线实例round()如何使用 round()。random()如何使用 random() 来返回 0 到 1 之间的随机数。max()如何使用 max() 来返回两个给定的数中的较大的数。&#xff08;在 ECMASCript v3 之前&#xf…

华为OD机试题 - 招聘(JavaScript)| 机考必刷

更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:招聘题目输入输出示例一输入输出说明示例二输入输出说明示例三输…

redis布隆过滤器与四个缓存问题

目录布隆过滤器定义特性使用场景解决缓存穿透的问题黑白名单校验底层原理哈希冲突案例添加key查询key总结四个缓存问题缓存雪崩定义解决方案缓存穿透定义解决方案方案一方案二(guava实现)代码案例源码分析方案三(RedisSon实现)代码实现方案四(直接安装redis插件,应用层解决方案…