Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【UniApp】-uni-app-路由

【UniApp】-uni-app-路由

原创
作者头像
程序员NEO
发布于 2023-12-12 16:04:21
发布于 2023-12-12 16:04:21
3890
举报

前言

  • 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-CompositionAPI应用生命周期和页面生命周期
  • 那么了解完了uni-app-CompositionAPI应用生命周期和页面生命周期之后,这篇文章来给大家介绍一下 uni-app-路由

前面我还说过,除了有应用程序的生命周期和页面的生命周期以外,其实还有组件的生命周期,组件的生命周期我就不介绍了 为什么呢?因为 UniApp 当中组件的生命周期和 Vue 的组件的生命周期是一样的,所以这里就不再介绍了

  • 那么我们不管三七二十一,先来新建一个项目

搭建演示环境

创建一个全新的项目:

然后在配置一下,微信小程序的 AppId,直接去之前的项目中拷贝一下即可,找到之前项目的 manifest.json 文件,然后选择微信小程序配置,复制一下即可。

这里我创建三个页面来进行演示,分别是 one, two, three,然后在 pages.json 文件中配置一下,我直接将对应的代码粘贴在下方快速搭建起来,主要是看 UniApp 中路由的知识点。

one 页面:

代码语言:html
AI代码解释
复制
<template>
	<view>
		<text>one</text>
	</view>
</template>

two 页面:

代码语言:html
AI代码解释
复制
<template>
	<view>
		<text>two</text>
	</view>
</template>

three 页面:

代码语言:html
AI代码解释
复制
<template>
	<view>
		<text>three</text>
	</view>
</template>

首页:

代码语言:html
AI代码解释
复制
<template>
	<view>
		<text>首页</text>
	</view>
</template>

pages.json 配置:

代码语言:json
AI代码解释
复制
{
  "pages": [{
    "path": "pages/index/index",
    "style": {
      "navigationBarTitleText": "首页",
      "enablePullDownRefresh": false
    }
  },
    {
      "path": "pages/one/one",
      "style": {
        "navigationBarTitleText": "one",
        "enablePullDownRefresh": false
      }
    },
    {
      "path": "pages/two/two",
      "style": {
        "navigationBarTitleText": "two",
        "enablePullDownRefresh": false
      }
    },
    {
      "path": "pages/three/three",
      "style": {
        "navigationBarTitleText": "three",
        "enablePullDownRefresh": false
      }
    }
  ],
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "uni-app",
    "navigationBarBackgroundColor": "#F8F8F8",
    "backgroundColor": "#F8F8F8"
  },
  "tabBar": {
    "color": "#7A7E83",
    "selectedColor": "#3cc51f",
    "borderStyle": "black",
    "backgroundColor": "#ffffff",
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页"
    }, {
      "pagePath": "pages/one/one",
      "text": "one"
    }, {
      "pagePath": "pages/two/two",
      "text": "two"
    }, {
      "pagePath": "pages/three/three",
      "text": "three"
    }]
  }
}
  • 经过如上的这么一顿操作之后,就可以搭建完毕运行环境,与编码环境
  • 接下来就可以开始进行介绍 uni-app-路由内容了

步入正题

什么是路由呢?路由就是页面之间的跳转,比如说我们现在在首页,然后我们点击了一个按钮,然后跳转到了 one 页面,这个过程就是路由

那么在 UniApp 中怎么进行路由跳转呢?这个时候就需要我们打开官方文档进行查阅了,官方文档地址:https://uniapp.dcloud.net.cn/tutorial/page.html#%E8%B7%AF%E7%94%B1

经官方介绍,uni-app 有两种页面路由跳转方式:使用navigator组件跳转、调用API跳转。

首先我们来看 调用API跳转

调用API跳转

打开调用API跳转官方文档:https://uniapp.dcloud.net.cn/api/router.html#

这里我介绍一下常用的几个 API:

  1. uni.navigateTo(OBJECT):保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面,跳转到的目标页面会有返回按钮。

更改 index.vue 文件,添加一个按钮,点击按钮跳转到 one 页面:

代码语言:html
AI代码解释
复制
<template>
	<view>
		<button @click="onJumpOne">navigateTo</button>
	</view>
</template>

<script>
	export default {
		methods: {
			onJumpOne() {
				uni.navigateTo({
					url: '/pages/one/one'
				})
			}
		}
	}
</script>

当我运行测试发现,控制台报错了,错误信息是 navigateTo:fail can not navigateTo a tabbar page ,意思是说不能跳转到 tabBar 页面,我们需要将 pages.json 文件中的 tabBar 配置去掉,为什么要去掉呢?因为 tabBar 页面是底部导航栏,是不能跳转的,所以我们需要将其去掉,然后再次运行测试,发现可以正常跳转了。

这里我将 one/two 的 tabBar 配置去掉,然后再次运行测试,发现可以正常跳转了。

  1. uni.redirectTo(OBJECT):关闭当前页面,跳转到应用内的某个页面。是没有返回按钮的。

更改 index.vue 文件,添加一个按钮,点击按钮跳转到 two 页面:

代码语言:html
AI代码解释
复制
<template>
  <view>
    <button @click="onJumpOne">redirectTo</button>
  </view>
</template>

<script>
  export default {
    methods: {
      onJumpOne() {
        uni.redirectTo({
          url: '/pages/two/two'
        })
      }
    }
  }
</script>
  1. uni.switchTab(OBJECT):跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。

更改 index.vue 文件,添加一个按钮,点击按钮跳转到 three 页面:

代码语言:html
AI代码解释
复制
<template>
	<view>
		<button @click="onJumpOne">switchTab</button>
	</view>
</template>

<script>
	export default {
		methods: {
			onJumpOne() {
				uni.switchTab({
					url: '/pages/three/three'
				})
			}
		}
	}
</script>

到这,通过调用 API 的方式,我们就可以实现页面之间的跳转了。大概就先介绍这么多,接下来我们来看看第二种方式。

使用navigator组件跳转

打开官方文档:https://uniapp.dcloud.net.cn/component/navigator.html#

废话不多说,直接将上面的代码转换为 navigator 组件的方式,navigator 中最主要是属性就是 url 与 open-type。

  • url:跳转的页面路径,可以是绝对路径,也可以是相对路径
  • open-type:跳转方式

更改 index.vue 文件,添加三个按钮,分别跳转到 one、two、three 页面:

代码语言:html
AI代码解释
复制
<template>
	<view>
		<navigator url="/pages/one/one" open-type="navigate">
			<button type="default">navigate</button>
		</navigator>
		<navigator url="/pages/two/two" open-type="redirect">
			<button type="default">redirect</button>
		</navigator>
		<navigator url="/pages/three/three" open-type="switchTab">
			<button type="default">switchTab</button>
		</navigator>
	</view>
</template>

最后

大家好我是 BNTang, 一个热爱分享的技术的开发者,如果大家觉得我的文章对你有帮助的话,可以关注我的公众号 JavaBoyL,我会在公众号中分享一些IT技术和一些个人的见解,谢谢大家的支持。


我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【UniApp】-uni-app-传递数据
路由传参怎么传,是不是可以从 A 页面传递给 B 页面,然后 B 页面再传递给 C 页面, 也可以从 C 页面传递给 B 页面,然后 B 页面再传递给 A 页面(可以顺着传也可以逆着传递)。
程序员NEO
2023/12/14
1.5K0
【UniApp】-uni-app-传递数据
uniapp教程之导航路由
一、uniapp的页面首先由pages.json定义,每个页面都必须先定义好 { "pages": [ { "path": "pages/index/index", "style": { "navigationBarTitleText": "uni-app" } } } 二、api uni.navigateTo 保留当前页面,跳转到应用内的某个页面 页面跳转有层级限制,小程序为十
老雷PHP全栈开发
2020/07/02
1.4K0
『UniApp』核心语法
下载地址:https://www.dcloud.io/hbuilderx.html
程序员NEO
2023/12/26
5582
『UniApp』核心语法
uni-app下拉刷新加载刷新数据
onPullDownRefresh 监听该页面用户下拉刷新事件 需要在 pages.json 里 开启 enablePullDownRefresh
达达前端
2019/10/14
7.5K0
uni-app实战之社区交友APP(2)全局样式引入和底部导航栏开发
本文先介绍了uni-app项目中引入全局样式的种类,即App.vue中引入官方CSS样式库、自定义图标库和CSS动画库;再介绍了在pages.json中定义globalStyle;最后实现了项目的导航栏开发。
cutercorley
2021/01/26
2.9K0
uni-app实战之社区交友APP(2)全局样式引入和底部导航栏开发
uni-app移动端开发技巧总结
pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、**底部的原生tabbar **等。
害恶细君
2022/11/22
3K0
uni-app实战教程-----H5移动app以及小程序(三)---页面跳转以及底部选项
新建页面 右键你的项目 点击新建页面 自己命名即可 这里为mine 建好后在 pages.json能看到 已被自动添加页面 底部选项卡 官方文档地址 https://uniapp.dclou
代码哈士奇
2021/01/29
1.5K0
uni-app基础 1.3.2-路由跳转和页面通讯
路由跳转和页面通讯 点击查看视频教程跳到b站 课程文档地址 注意区别 练习配置 在pages.json下配置一个tarBar "tabBar": { "list": [{ "pagePath": "pages/index/index", "text": "index" }, { "pagePath": "pages/one/one", "text": "one" }] } uni.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面 un
代码哈士奇
2022/04/13
3300
实践分享:怎样用好uni-app开发小程序?
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。
极乐君
2020/11/19
3K0
实践分享:怎样用好uni-app开发小程序?
uni-app开发微信小程序和h5应用
最近,有个需求需要开发H5应用和微信小程序。如果针对不同的平台开发自己的一套代码,那将是一件很糟糕的事情:如果下次需要兼容支付宝小程序、快应用,那工作量随着平台的添加而快速增加。所以我们选择了uni-app开发。
Jimmy_is_jimmy
2022/03/10
1.3K0
uni-app开发微信小程序和h5应用
uni-app页面跳转的区别uni.navigateTo和uni.redirectTo
作者已经封装了更好用的XTools快去支持一下吧:XTools如何使用 有什么不明白可以联系QQ:1647161294 uni-app 页面跳转 主要有下面5个方法完成,分别如下: (1)uni.n
田小檬
2023/08/24
1K0
零基础微信小程序开发——页面导航之声明式导航(保姆级教程+超详细)
在小程序开发中,页面导航是实现页面间切换和交互的重要手段。它允许开发者设计多种跳转逻辑,以满足用户在不同场景下的需求。例如,用户可能从首页跳转到商品详情页,或者从购物车页面跳转到支付页面等。
小白的大数据之旅
2024/12/28
3660
零基础微信小程序开发——页面导航之声明式导航(保姆级教程+超详细)
微信小程序入门文档下载_小程序开发教程全集免费
最新一版的微信开发者工具,把微信公众号的调试开发工作也集成了进去,可以更换开发模式。
全栈程序员站长
2022/09/20
10.9K0
微信小程序入门文档下载_小程序开发教程全集免费
uniapp 路由与页面跳转
uni.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。
达达前端
2020/06/16
2.6K0
uni-app小程序开发-页面跳转及传值
示例:uni.redirectTo({ url: '/pages/login/login' })
码客说
2024/07/04
4850
【Uniapp】-uni-app页面管理配置文件
好了,经过我们上篇文章的介绍,我们就了解了一下 UniApp 的一个目录结构,那么了解完了这个 Uni APP 的一个目录结构之后,这篇我们再来了解一下目录结构当中的一个配置文件,pages.json,那这个 pages.json,上篇文章我们也说过了,它相当于我们小程序开发当中的一个 app.js 就是我们页面配置文件, 在这个页面配置文件里面,可以告诉它我们有哪些页面, 可以进行一些全局的配置,比如说配置全局的标题文字颜色,全局的背景颜色这些东西,好,那么接下来不管三七二十一,再来新建一个项目,新建项目和之前介绍的是一样的用默认模板即可,我这里略过创建步骤。
程序员NEO
2023/12/04
7852
【Uniapp】-uni-app页面管理配置文件
uni-app开发一个小视频应用(一)
“ uni-app 是一个使用 Vue.js 开发所有前端应用的框架,是一种终极的跨平台解决方案,这里的平台,主要指的是App平台(android、ios)、小程序平台、H5平台。开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。 ” 01 开发一个小视频应用 一 初始化项目 打开HBuilderX IDE,新建一个名称为mini-video的初始化uni-app项目,这里勾选uni-app即可创建,项目创建完成后,打开pages
腾讯NEXT学位
2019/10/12
4K0
uni-app开发一个小视频应用(一)
【UniApp】-uni-app-CompositionAPI应用生命周期和页面生命周期
然后在配置一下,微信小程序的 AppId,直接去之前的项目中拷贝一下即可,找到之前项目的 manifest.json 文件,然后选择微信小程序配置,复制一下即可。
程序员NEO
2023/12/12
7030
【UniApp】-uni-app-CompositionAPI应用生命周期和页面生命周期
【Uniapp】-uni-app全局样式和局部样式
好,经过上个章节的介绍完毕之后,了解了一下 UniApp 的一个全局 页面配置文件,也就是我们的一个 pages.json 文件。
程序员NEO
2023/12/06
1.8K0
【Uniapp】-uni-app全局样式和局部样式
uni-app入门教程(2)页面样式、配置文件和生命周期
本文先介绍uni-app的页面样式和布局,包括尺寸单位、样式导入、内联样式和选择器等;再介绍两个配置文件,即pages.json和manifest.json的配置项和基本使用;最后简要介绍了生命周期的基本使用。
cutercorley
2020/12/16
2.9K0
uni-app入门教程(2)页面样式、配置文件和生命周期
推荐阅读
相关推荐
【UniApp】-uni-app-传递数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档