微信小程序小结(5) -- 常用语法

在 pages 字段的第一个页面就是这个小程序的首页(打开小程序看到的第一个页面)。

Page生命周期

属性 类型 描述
onLoad Function 生命周期函数--监听页面加载。一个页面只会调用一次,可以在 onLoad 中获取打开当前页面所调用的 query 参数。
onReady Function 生命周期函数--监听页面初次渲染完成。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
onShow Function 生命周期函数--监听页面显示。每次打开页面都会调用一次。
onHide Function 生命周期函数--监听页面隐藏。当navigateTo或底部tab切换时调用。
onUnload Function 生命周期函数--监听页面卸载。当redirectTo或navigateBack的时候调用。
onPullDownRefresh Function 页面相关事件处理函数--监听用户下拉动作
onReachBottom Function 页面上拉触底事件的处理函数
onShareAppMessage Function 用户点击右上角转发
onPageScroll Function 页面滚动触发事件的处理函数
onTabItemTap Function 当前是 tab 页时,点击 tab 时触发

setData()

Page({
  data: {
    text: ‘init data‘,
    num: 0,
    array: [{text: ‘init data‘}],
    object: {
      text: ‘init data‘
    }
  },
  changeText: function() {
    // this.data.text = ‘changed data‘  // bad, it can not work
    this.setData({
      text: ‘changed data‘
    })
  },
  changeNum: function() {
    this.data.num = 1
    this.setData({
      num: this.data.num
    })
  },
  changeItemInArray: function() {
    // you can use this way to modify a danamic data path
    this.setData({
      ‘array[0].text‘:‘changed data‘
    })
    //or
    var txt = ‘array[‘ + i + ‘].text‘;
    this.setData({
        [txt]: ‘adoctors‘
    })

  },
  changeItemInObject: function(){
    this.setData({
      ‘object.text‘: ‘changed data‘
    });
  },
})

导航

getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

navigateTo, redirectTo 只能打开非 tabBar 页面。

switchTab 只能打开 tabBar 页面。

reLaunch 可以打开任意页面。

页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。

调用页面路由带的参数可以在目标页面的onLoad中获取。

//使用组件,根据场景改变所需类型
<navigator open-type="navigateTo"/>

导航API

API 说明
wx.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
wx.redirectTo(OBJECT) 关闭当前页面,跳转到应用内的某个页面。
wx.reLaunch(OBJECT) 关闭所有页面,打开到应用内的某个页面。如果跳转的页面路径是 tabBar 页面则不能带参数。
wx.switchTab(OBJECT) 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

OBJECT 参数说明:

参数 类型 必填 说明
url String 需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 ‘path?key=value&key2=value2‘
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
wx.reLaunch({
  url: ‘test?id=1‘
})

//获取
onLoad: function(option){
    console.log(option.query)
}
//或
onLoad: function(options) {
    console.log(options.id);
}

注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。

wx.navigateBack(OBJECT)

关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层。

该方法只有一个参数

wx.navigateBack({
  delta: 2      //相当于后退两步
})

数据缓存

每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync)wx.getStorage(wx.getStorageSync)wx.clearStorage(wx.clearStorageSync)可以对本地缓存进行设置、获取和清理。同一个微信用户,同一个小程序 storage 上限为 10MB。localStorage 以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据。

//设置
wx.setStorage({
  key:"key",
  data:"value"
})

try {
    wx.setStorageSync(‘key‘, ‘value‘)
} catch (e) {
}
//获取
wx.getStorage({
  key: ‘key‘,
  success: function(res) {
      console.log(res.data)
  }
})

try {
  var value = wx.getStorageSync(‘key‘)
  if (value) {
      // Do something with return value
  }
} catch (e) {
  // Do something when catch error
}

消息提示(弹窗)

wx.showToast({
  title: ‘成功‘,
  icon: ‘success‘,  //success,loading,none
  duration: 2000
})

多种配置,详见:https://developers.weixin.qq.com/miniprogram/dev/api/api-react.html#wxshowtoastobject

设置窗口背景

wx.setBackgroundColor({
    backgroundColor: ‘#ffffff‘, // 窗口的背景色为白色
})

wx.setBackgroundColor({
    backgroundColorTop: ‘#ffffff‘, // 顶部窗口的背景色为白色
    backgroundColorBottom: ‘#ffffff‘, // 底部窗口的背景色为白色
})

也可再配置中设置全局的背景色

app.json
{
  "window":{
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "设置全局的背景色",
    "backgroundColor": "#eeeeee",
    "backgroundTextStyle": "light"
  }
}

在此情况下,单独设置某个页面的背景色

demo.wxss
page{background-color:#f5f5f5;} 

获取全局变量

//获取
const app = getApp().globalData;

console.log(app.baseURL) 

//改变
app.unionId = res.data.userInfo.unionId;

按条件渲染及获取附带值(传参)

//切换类名
<view class="tp-option1 {{item.checked == true ? ‘tp-option1-active‘ : ‘‘}}" wx:key="item.itemName" data-index="{{index}}" wx:for="{{itemlist}}">

//获取点击选项附带的属性值
console.log(e.currentTarget.dataset.index)
//获取输入框输入的值
console.log(e.detail.value)

<image src="../../../../img/topic/r0.jpg" class="tp_answer_result" wx:if="{{result==0}}"></image>
<image src="../../../../img/topic/r1.jpg" class="tp_answer_result" wx:else></image>

//若直接传值则带上{{}}
ised="{{false}}"        //若写成ised="false",则会因为是非空字符串一直为true

原文地址:https://www.cnblogs.com/adoctors/p/9403741.html

时间: 2024-08-09 10:12:03

微信小程序小结(5) -- 常用语法的相关文章

微信小程序小结

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545;

微信小程序小结(4) -- 分包加载及小程序间跳转

分包加载 某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载(主要是空间不够用,哈哈~). 在构建小程序分包项目时,构建会输出一个或多个功能的分包,其中每个分包小程序必定含有一个主包,所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本,而分包则是根据开发者的配置进行划分. 在小程序启动时,默认会下载主包并启动主包内页面,如果用户需要打开分包内某个页面,客户端会把对应分包下载下来,下载完成后再进行展示.

微信小程序开发工具 常用快捷键

格式调整 1.Ctrl + [   代码向左缩进 2.Ctrl + ]   代码向右缩进 3.Ctrl + Shift + [   代码折叠 4.Ctrl + Shift + ]   代码张开 5.Ctrl + i   选中当前行 6.Alt + Up  代码向上移动一行 7.Alt + Down  代码向下移动一行 8.Shift + Alt + Up  代码向上复制一行 9.Shift + Alt + Down  代码向下复制一行 10.Ctrl + Shift + Enter:在当前行上方

微信小程序------小程序初步学习

1:学习微信小程序,首先的会一点前端的基础会比较容易上手,比如:HTML+CSS,JS,HTML5+CSS3: H5+CSS3中的弹性盒子在微信小程序中经常用到,这是必须掌握的.不会的可以去W3C文档学习,小编我很幸运,小程序没出来之前就学了H5+CSS3和JS的基础, 所以看相关开发文档和代码还是比较容易看的懂的. 2:之后可以去微信官方文档学习 文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/ 可以扫码体验一下官方的一些本身自带的组件和API功能

微信小程序之初探(常见语法 VS vue)常见问题(点击不生效,数据绑定)

最近在调研微信小程序开发,对于一个前端小白来说,在各种框架都还用不熟的情况下,再来开发小程序确实还是不容易. 小程序出来之初,听过演讲,看过一点点儿视频,感觉和angular语法有点相似(PS:那是也是只了解一点点儿angular语法): 近两天开始尝试开发小程序,讲真,语法和angular和vue都很相似,小程序提供的语法现在还算全面,很多方法都有提供: 下面简述一下常用方法的使用: 一:数据绑定: html js 直接把数据写在data里面就行了,这样数据可以直接渲染到页面上, 那么问题来了

微信小程序入门——Mustache语法学习

微信小程序中用到了大量Mustache语法,特发此文学习一下 1.简单的变量调换:{{name}} 1 var data = { "name": "Willy" }; 2 Mustache.render("{{name}} is awesome.",data); 返回成果 Willy is awesome. 2.若是变量含有html的代码的,例如:<br>.<tr>等等而不想转义可以在用{{&name}} 1 va

微信小程序基础语法总结

本文介绍微信小程序语法 配置文件 app.json的配置(全局) { // 用来配置页面的路径 "pages":[ "pages/index/index", // 首页 "pages/Test/Test" // 跳转的页面 ], "window":{ "enablePullDownRefresh": true, // 是否支持下拉刷新 "backgroundTextStyle":&quo

CK2020微信小程序入门与实战 常用组件API开发技巧项目实战

新年伊始,学习要趁早,点滴记录,学习就是进步! 随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了.对于学习有困难不知道如何提升自己可以加扣:1225462853  获取资料. 下载地址:https://pan.baidu.com/s/1hsU5EIS 微信小程序入门与实战 常用组件API开发技巧项目实战 小程序官方正式公告,开放了更多的入口,个人开发者可以申请

干货|微信小程序最常用的推广营销方法和渠道技巧推荐

直至目前为止,已经有近5亿用户使用过小程序了.正因为如此,很多企业和商家都纷纷将目光投向小程序,积极开起了自己的小程序来.希望借助小程序的流量风口,分得万亿红利市场的一杯羹. 方法一.付费推广 微信上线了广告功能, 搜索相关品类关键词,广告商的品牌就会得到优先展示.在微信做广告,是一件烧钱的事情,但是,效果肯定不能差了, 当然,利用微信广告推广,需要有钱的主.如果预算较多,可以适当的尝试一下,付费推广最为直接,而且在短期内就能见到效果. 方法二. 微信公众号推广 微信小程序和公众号的界限越来越模