我们写小程序时都要跳转页面的,也会有底部导航来进行切换

这个时候就要介绍下窗口是怎样配置的

要在app.json文件里写一个tabBer对象 里面在定义一个list数组里面放我们定义的几个需要切换的页面 如下 最多list里面可以定义6个对象

在微信小程序里我们创建文件挺简单的 如下图

比如说就在上面图片的最下面直接写pages/文件名/文件名 然后保存就行了  这样文件夹就创建成功了

然后我再说下小程序的文件类型  小程序的文件类型分别有四种

第一种 :js文件

这个home.js里面写的是我们从html标签里面传过来的点击事件或者是传递参数时 要把方法定义在onLoad函数里 onload是监听页面加载的

如上图的pages它就是一个大的对象

它里面包含着data和我们微信小程序众多的声明周期核函数

它里面的data和我们vue里面的data语义差不多都是一样的 都是存放变量的

第二种:json文件

第三种:wxml文件

wxml文件里面写的就是html代码 一般wxml文件里只用<images/>  <view/>  <lable/>  <button/>标签

第四种wxss文件

里面写在wxml文件里面起的class类名 在wxss文件里写css样式

下面我介绍下小程序的生命周期和页面的生命周期

  • 应用生命周期

  • 页面生命周期

  • 应用生命周期影响页面生命周期

》》》应用生命周期

  1. 用户首次打开小程序,触发 onLaunch(全局只触发一次)。

  2. 小程序初始化完成后,触发onShow方法,监听小程序显示。

  3. 小程序从前台进入后台,触发 onHide方法。

  4. 小程序从后台进入前台显示,触发 onShow方法。

  5. 小程序后台运行一定时间,或系统资源占用过高,会被销毁。

前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。

在整理本文资料的时候,有点不解,为什么不把小程序监听『销毁』方法开放给开发者,我猜测是因为IOS系统限制『按下Home键时,app从活动状态转入后台,会被挂起』;微信也不例外,只要运行一段时间或把微信客户端进程杀掉,就无法通知小程序应用被销毁。

》》》页面生命周期

  1. 小程序注册完成后,加载页面,触发onLoad方法。

  2. 页面载入后触发onShow方法,显示页面。

  3. 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。

  4. 当小程序后台运行或跳转到其他页面时,触发onHide方法。

  5. 当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。

  6. 当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload

》》》应用生命周期影响页面生命周期

  1. 小程序初始化完成后,页面首次加载触发onLoad,只会触发一次。

  2. 当小程序进入到后台,先执行页面onHide方法再执行应用onHide方法。

  3. 当小程序从后台进入到前台,先执行应用onShow方法再执行页面onShow方法。

微信小程序跳转页面并传递参数的说明

微信小程序跳转提供了6中路由跳转方式:

wx.switchTab(Object object):跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

即只能跳转到app.json中定义的tabBar页面

wx.redirectTo(Object object):关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabBar 页面

即只能跳转到除了上面注册tabBar的页面

所以wx.switchTab(Object object)和wx.redirectTo(Object object)是相对的

wx.navigateTo(Object object):保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。

与wx.redirectTo的区别就是是否保存现在的页面,比较适用于详情页,经常需要跳转回去

wx.navigateBack(Object object):关闭当前页面,返回上一页面或多级页面,可以传入一个参数,作为返回的页数,

wx.navigateBack(2) 返回前2页

wx.reLaunch(Object object):关闭所有页面,打开应用中的某个页面

<navigate />:直接在wxml中使用该标签包裹,使用url属性指向跳转的页面

传递参数:

直接使用url传递,简单的数据

如:发送给跳转页面

wx.navigateTo({

url: '../detail/detail?id=1'

})

跳转页面在onLoad()函数会获取到一个option(自定义名)的参数,该参数就包含了

Page({

onLoad(options) {

console.log(options)

}

})

输出了

如果是对象这类数据比较多的,也可以用该方法,不过需要将对象先转化为字符串,这里使用了JSON.stringify和JSON.parse

还有就是我们在小程序中要存储数据

我们在开发的过程中,常常会用到本地存储,下面我给大家分享一下微信本地存储的使用。

一、数据支持

需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。

二、方法

1、同步

(1)wx.setStorageSync();  //存储值

1 try {
2 wx.setStorageSync('key', 'value')
3 } catch (e) {
4
5 }

(2)wx.removeStorageSync();   // 移除指定的值

1 try {
2 wx.removeStorageSync('key')
3 } catch (e) {
4 // Do something when catch error
5 }

(3)wx.getStorageSync();  // 获取值

1 try {
2 var value = wx.getStorageSync('key')
3 if (value) {
4 // Do something with return value
5 }
6 } catch (e) {
7 // Do something when catch error
8 }

(4)wx.getStorageInfoSync();  // 获取当前 storage 中所有的 key

1 try {
2 const res = wx.getStorageInfoSync()
3 console.log(res.keys)
4 console.log(res.currentSize)
5 console.log(res.limitSize)
6 } catch (e) {
7 // Do something when catch error
8 }

(5)wx.clearStorageSync();  // 清除所有的key

1 try {
2 wx.clearStorageSync()
3 } catch(e) {
4 // Do something when catch error
5 }

2、异步

(1)wx.setStorage();  //存储值

将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。

1 wx.setStorage({
2 key:"key",
3 data:"value"})

(2)wx.removeStorage();   // 移除指定的值

1 wx.removeStorage({
2 key: 'key',
3 success (res) {
4 console.log(res)
5 }})

(3)wx.getStorage();  // 获取值

1 wx.getStorage({
2 key: 'key',
3 success (res) {
4 console.log(res.data)
5 }})

(4)wx.getStorageInfo();  // 获取当前 storage 中所有的 key

1 wx.getStorageInfo({
2 success (res) {
3 console.log(res.keys)
4 console.log(res.currentSize)
5 console.log(res.limitSize)
6 }})

(5)wx.clearStorage();  // 清除所有的key

1 wx.clearStorage()

微信小程序学习心得的更多相关文章

  1. 微信小程序学习指南

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  2. 今天看了几个小时的微信小程序说说心得体会

    今天看了几个小时的微信小程序说说心得体会 小程序是个前端框架 根据微信相关提供了很多接口 1 先说说各种后缀的文件 .json 后缀的 JSON 配置文件.wxml 后缀的 WXML 模板文件.wxs ...

  3. 微信小程序 学习资料

    微信小程序 学习资料 资料名称 网址 官方教程 https://developers.weixin.qq.com/miniprogram/dev/index.html?t=18110517

  4. 【微信小程序学习笔记】入门与了解

    [微信小程序学习笔记(一)] IDE 下载安装 下载地址 官方工具:https://mp.weixin.qq.com/debug/w … tml?t=1476434678461 下载可执行文件后,可按 ...

  5. 微信小程序学习笔记二 数据绑定 + 事件绑定

    微信小程序学习笔记二 1. 小程序特点概述 没有DOM 组件化开发: 具备特定功能效果的代码集合 体积小, 单个压缩包体积不能大于2M, 否则无法上线 小程序的四个重要的文件 *js *.wxml - ...

  6. 微信小程序学习笔记一 小程序介绍 & 前置知识

    微信小程序学习笔记一 1. 什么是小程序? 2017年度百度百科十大热词之一 微信小程序, 简称小程序, 英文名 Mini Program, 是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是 ...

  7. 微信小程序个人心得

    尊重原创:http://blog.csdn.net/qq_28832135/article/details/52796048 昨天看了一下微信小程序官方文档,总结一下自己学习的个人心得. 首先从官方文 ...

  8. 微信小程序学习

    官方网站 https://mp.weixin.qq.com/debug/wxadoc/dev/index.html 项目结构介绍 -- MINA框架 https://mp.weixin.qq.com/ ...

  9. 微信小程序学习笔记(阶段一)

    一阶段学习过程: (一)看官方文档的简易教程:https://mp.weixin.qq.com/debug/wxadoc/dev/ (二)看小码哥视频:https://chuanke.baidu.co ...

随机推荐

  1. Linux实战(1):装机一键设置脚本-初级版

    #!/bin/bash #此脚本作用是装完centos后所执行的一系列设置,基本是必须设置的操作,主要分为几大功能:修改yum源,安装ifconfig,安装ping,修改selinux配置 #第一部分 ...

  2. (数据科学学习手札95)elyra——jupyter lab平台最强插件集

    本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 jupyter lab是我最喜欢的编辑器,在过往 ...

  3. hystrix总结之限流

    hystrix使用舱壁隔离模式来隔离和限制各个请求,设计了两种隔离方式:信号量和线程池.线程池隔离:对每个command创建一个自己的线程池,执行调用.通过线程池隔离来保证不同调用不会相互干扰和每一个 ...

  4. pytest封神之路第零步 快速入门

    背景:本文是在系列第五篇发表后的补充篇章,第一篇介绍了tep,可能对不熟悉pytest的朋友不够友好,特意补充入门篇,帮大家快速了解如何动手写pytest.如果你是从这篇文章第一次阅读,那么请忽略以上 ...

  5. Python新手入门基础

    认识 Python 人生苦短,我用 Python -- Life is short, you need Python 目标 Python 的起源 为什么要用 Python? Python 的特点 Py ...

  6. 微服务实战系列(八)-网关springcloud gateway自定义规则

    1. 场景描述 先说明下项目中使用的网关是:springcloud gateway, 因需要给各个网关服务系统提供自定义配置路由规则,实时生效,不用重启网关(重启风险大),目前已实现:动态加载自定义路 ...

  7. 排序算法:归并排序(Merge Sort)

    归并排序 归并排序采用了分治策略(divide-and-conquer),就是将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解. 归并排序将排序数组A[1. ...

  8. 【字符串算法】字典树(Trie树)

    什么是字典树 基本概念 字典树,又称为单词查找树或Tire树,是一种树形结构,它是一种哈希树的变种,用于存储字符串及其相关信息. 基本性质 1.根节点不包含字符,除根节点外的每一个子节点都包含一个字符 ...

  9. matlab中fopen 打开文件或获得有关打开文件的信息

    参考:https://ww2.mathworks.cn/help/matlab/ref/fopen.html?searchHighlight=fopen&s_tid=doc_srchtitle ...

  10. OneWire总线的Arduino库函数

    OneWire总线基本点 One-wire总线是DALLAS公司研制开发的一种协议,采用单根信号线,既传输时钟,又传输数据而且数据传输是双向的.它具有节省I/O 口线资源.结构简单.成本低廉.便于总线 ...