前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序开发实战(19):页面导航

微信小程序开发实战(19):页面导航

作者头像
蒙娜丽宁
发布2020-08-11 11:26:08
1.3K0
发布2020-08-11 11:26:08
举报
文章被收录于专栏:极客起源极客起源

在前面的章节尽管介绍了很多API和组件,但所有的代码都放在了一个页面中(布局放在了wxml文件中,JS代码写在了js文件中),然而,对于一个有实际应用价值的小程序,不可能只有一个页面,如果小程序中包含了多个页面,就需要从一个页面切换到另一个页面,这被称为页面导航。

要实现页面导航,需要使用<navigator>标签,该标签允许在当前页面显示另一个页面,也允许显示一个新页面。例如,下面的布局代码中使用了两个<navigator>标签。

代码语言:javascript
复制
<view style="margin:30px">
<navigator url="page1?title=跳转到新页面" >
<button >跳转到新页面</button>
</navigator>
<navigator style="margin-top:20px" url="page2?title=在当前页面打开&color=red" redirect >
<button >在当前页打开</button>
</navigator>å
</view>

<navigator>标签有一个非常重要的属性url,该属性用于指定要跳转的页面和要传递的值。这个url的格式类似于web地址。页面和参数之间用问号(?)分隔,如果传递多个参数,参数之间用&分隔。其中page1和page2是与当前页面同一个目录下的页面。第二个<navigator>标签不仅通过url传递了title参数,还传递了一个color参数,用于设置page2中文本的颜色。在这个<navigator>标签中还指定了redirect属性,表示在当前页面中打开新页面,默认是在另一个页面中打开新页面。

现在选择当前页面的目录,然后单击鼠标右键,会弹出如图1所示的菜单。

图1 新建页面

现在新建4个文件:page1.wxml、page1.js、page2.wxml和page2.js。这4个文件中的代码如下:

page1.wxml

代码语言:javascript
复制
<view style="margin:30px">
<text>{{title}}</text>
</view>
page1.js
Page({
  onLoad: function(options) {
    console.log(options)
    this.setData({
      title: options.title
    })
  }
})

page2.wxml

代码语言:javascript
复制
<view style="margin:30px">
<text style="color:{{color}}">{{title}}</text>
</view>
page2.js
Page({
  onLoad: function(options) {
    console.log(options)
    this.setData({
      title: options.title,
      color:options.color
    })
  }
})

从page1.js和page2.js文件中的代码可以看出,通过onLoad事件的options参数返回传入的参数(title和color),并将这两个参数值赋给title和color变量。

注意:新添加的页面,要在app.json文件的pages中注册,否则无法使用新建立的页面。注册代码如下:

代码语言:javascript
复制
"page/component/component-pages/wx-view/page1",
"page/component/component-pages/wx-view/page2",

现在点击第一个按钮,会跳转到如图2所示的页面,点击左上角的“返回”按钮,会返回到当前页面。

图2 在另一个页面显示新页面

点击第二个按钮,会跳转到如图3所示的页面,点击左上角的“返回”按钮,会返回到当前页面的上一个页面。

图3 在当前页面显示新页面

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客起源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档