微信小程序学习笔记(4) -- 页面间的跳转和传值

简介: 微信小程序学习笔记(4) -- 页面间的跳转和传值


页面间跳转

页面间跳转 — 导航

关键标签: navigator

首先注意2个地方:

1.在app.json中书写一个配置项,会自动生成该页面的page下面的2个文件

2.如果新建的page的json文件是空内容,改页面不会被渲染,显示空白,解决方式在page的json中加个{},让它符合json的规范。

案例演示:

演示页面demo1跳转到demo2的页面,然后点击demo2的图片挑转到demo3的页面。

  • 1.准备3个页面
    app.json
{
  "pages":[
    "pages/demo1/demo1",
    "pages/demo2/demo2",
    "pages/demo3/demo3"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle":"black"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}
  • 2.书写demo1的页面,定义个navigator的标签
<!--pages/demo1/demo1.wxml-->
<navigator url="../demo2/demo2">go demo2 page</navigator>
  • 3.书写demo2的页面
<!--pages/demo2/demo2.wxml-->
<text>pages/demo2/demo2.wxml</text>
<navigator url="../demo3/demo3">
  <image src="../../images/12.png"></image>
</navigator>
  • 4.书写demo3的页面
<!--pages/demo3/demo3.wxml-->
<text>pages/demo3/demo3.wxml</text>
  • 看下效果:

会跳转到:

点击图片:

页面间传值

页面间参数传递:

1.传递: 跳转链接上加问号参数

2.接受 pnload的第一个参数(对象)

案例说明:

在demo1中携带参数跳转到demo2页面,看下demo2是否可以接受到参数值。

<!--pages/demo1/demo1.wxml-->
<navigator url="../demo2/demo2">go demo2 page</navigator>
<navigator url="../demo2/demo2?name=小明&age=18">小明</navigator>
<navigator url="../demo2/demo2?name=小红">小红</navigator>
<!-- 
 页面间参数传递:
    1.传递: 跳转链接上加问号参数
    2.接受 pnload的第一个参数(对象)
 -->

demo2.js

// pages/demo2/demo2.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
      console.log(options);
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  }
})

测试:

看下打印信息:

显示:接收到了参数。

看下控制台信息:

也接受到了信息。同时页面也已经跳转到了demo2页面

页面导航模式–redirect

前面的导航栏模式,demo1页面跳转到demo2的时候会有个返回,点击返回又返回到了demo1页面。

如果有这个需求:不想返回到原来的页面,就得用到导航的redirect模式(redirect设置为true)。

原来的方式:

可以看到又返回到demo1页面了。

改进:使用redirect方式跳转

<!--pages/demo1/demo1.wxml-->
 <navigator url="../demo2/demo2" redirect>跳转过去(不回来了)</navigator>

说明,redirect模式设置成功。

导航元素点击高亮

在点击导航时,会有个高亮效果:如下图。

如果设置不高亮?

通过这种方式:

<navigator hover-class="none">点我点我1</navigator>

如何自定义高亮效果

我们可以自己定义hover-class的样式。

<navigator hover-class="my-hover">点我点我</navigator>
.my-hover{
  color: red;
}

测试:

普通元素如何设置高亮

2种方式,放在导航标签,另一种给元素标签添加cusor:pointer

举例说明:

<!-- cursor pointer 的方式是一个我们发现的一个小技巧,可以让任何袁术点击时高亮 -->
  <image class="hover-demo" src="../../images/12.png"></image>
.hover-demo{
  cursor: pointer;
}

页面导航api

wx.navigateTo

跳转到指定的页面。

demo1.wxml

<button type="primary" bindtap="tapHandler">跳转过去</button>

demo1.js

Page({
  tapHandler:function(){
    //当我们点击按钮,系统会自动执行这里的代码
    console.log(111)
    // wx.navigateTo({
    //   url: '../demo2/demo2',
    // })
    // 相当于加上redirect的navigator
    // wx.redirectTo({
    //   url: '../demo2/demo2',
    // })
    wx.navigateTo({
      url: '../demo2/demo2?id=123',
    })
  }
})

测试:点击跳转按钮

显示:跳转到了demo2的页面:

携带参数

还是刚才的例子,使用问号携带了id=123.看下控制台

显示参数携带过来了。

wx.redirectTo

导航redirect模式,不能返回原来的页面:

demo.js

Page({
  tapHandler:function(){
    //当我们点击按钮,系统会自动执行这里的代码
    console.log(111)
    // wx.navigateTo({
    //   url: '../demo2/demo2',
    // })
    // 相当于加上redirect的navigator
    wx.redirectTo({
      url: '../demo2/demo2',
    })
    // wx.navigateTo({
    //   url: '../demo2/demo2?id=123',
    // })
  }
})

看下效果:

跳转到了demo2的页面:

wx.navigateBack

返回到前面的页面。

  • 指定delta就是返回到指定页面(值为数字,1代表前面的第一个页面,2代表前面的第2个页面)
  • 当delta过大(超出历史记录)。默认返回最开始的页面
    举例说明:
    在demo3.页面测试
    demo3.wxml
<!--pages/demo3/demo3.wxml-->
<text>pages/demo3/demo3.wxml</text>
<button bindtap="backHandler">返回</button>
  • demo3.js
// pages/demo3/demo3.js
Page({
  backHandler:function(){
    //默认返回到上一页
    //  wx.navigateBack()
    //指定delta就是返回到指定页面
    //当delta过大(超出历史记录)。默认返回最开始的页面
     wx.navigateBack({
       delta: 2,
     })
     //wx.navigateTo
     //wx.navigateBack
     //wx.redirectTo
     //传递参数 通过问号  
  }
})

案例演示:

demo1:

tapHandler:function(){
    //当我们点击按钮,系统会自动执行这里的代码
    console.log(111)
    wx.navigateTo({
      url: '../demo2/demo2',
    })

点击跳转过去,进入demo2

<!--pages/demo2/demo2.wxml-->
<text>pages/demo2/demo2.wxml</text>
<navigator url="../demo3/demo3">
  <image src="../../images/12.png"></image>
</navigator>

点击图片进入demo3

// pages/demo3/demo3.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },
  backHandler:function(){
    //默认返回到上一页
    //  wx.navigateBack()
    //指定delta就是返回到指定页面
    //当delta过大(超出历史记录)。默认返回最开始的页面
     wx.navigateBack({
       delta: 2,
     })
  }
})

点击返回,返回到demo1的页面:


目录
打赏
0
0
0
0
15
分享
相关文章
微信小程序页面导航与路由:实现多页面跳转与数据传递
本文深入探讨微信小程序的页面导航与路由机制,介绍多种页面跳转方式如`wx.navigateTo`、`wx.redirectTo`、`wx.switchTab`等,并讲解通过URL、全局变量和事件传递数据的方法。结合案例实现多页面跳转与数据传递,帮助开发者掌握这一重要技能。
小程序的页面如何布局?
【10月更文挑战第16天】小程序的页面如何布局?
239 1
微信小程序的目录结构及页面结构的说明
本文详细介绍了微信小程序的目录结构、页面组成部分以及项目的全局配置文件,阐述了小程序的宿主环境和运行机制,包括小程序启动和页面渲染的过程。
微信小程序的目录结构及页面结构的说明
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)
app跳转微信小程序,使用明文scheme拉起
app跳转微信小程序,使用明文scheme拉起
1314 4
微信小程序页面事件,下拉刷新事件和上拉触底事件
这篇文章介绍了微信小程序中如何实现下拉刷新和上拉触底事件,包括开启下拉刷新、配置下拉刷新样式、监听下拉刷新事件,以及监听上拉触底事件和配置上拉触底的距离。
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
47 0
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
94 0
在线课堂+工具组件小程序uniapp移动端源码
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
648 3
|
5月前
|
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
107 0
微信小程序更新提醒uniapp

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等