uniapp路由—— uni-simple-router

这篇具有很好参考价值的文章主要介绍了uniapp路由—— uni-simple-router。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

要在uniapp中使用路由守卫,uniapp原生的api是比较欠缺的,所以要用‘uni-simple-router’插件包

安装 

// 项目根目录执行命令行
npm install uni-simple-router
// 根据pages.json总的页面,自动构建路由表
npm install uni-read-pages

配置vue.config.js

注:如果根目录没有vue.config.js文件,要手动创建

// vue.config.js
const TransformPages = require('uni-read-pages')
const { webpack } = new TransformPages()
module.exports = {
	configureWebpack: {
		plugins: [
			new webpack.DefinePlugin({
				ROUTES: webpack.DefinePlugin.runtimeValue(() => {
					const tfPages = new TransformPages({
						includes: ['path', 'name', 'aliasPath','meta']
					});
					return JSON.stringify(tfPages.routes)
				}, true)
			})
		]
	}
}

在router文件夹 下对应的 js文件 中写如下代码

import { RouterMount, createRouter } from 'uni-simple-router';
 
const router = createRouter({
	platform: process.env.VUE_APP_PLATFORM,
	routes: [...ROUTES]
});
//全局路由前置守卫
router.beforeEach((to, from, next) => {
//权限控制登录
	if(to.meta.auth){
		console.log("需要登录");
		if("token"){
			next();
		}else{
			console.log("请登录");
		}
	}else{
		console.log("不需要登录");
         next();
	}
	
	console.log("前置守卫"+JSON.stringify(to));
	
});
// 全局路由后置守卫
router.afterEach((to, from) => {
	console.log('跳转结束')
})
 
export {
	router,
	RouterMount
}

main.js

import {router,RouterMount} from './router/router.js'  //路径换成自己的
Vue.use(router)
 
 
//v1.3.5起 H5端 你应该去除原有的app.$mount();使用路由自带的渲染方式
// #ifdef H5
	RouterMount(app,router,'#app')
// #endif
 
// #ifndef H5
	app.$mount(); //为了兼容小程序及app端必须这样写才有效果
// #endif

  page.json

{
	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
		{
			"path": "pages/index/index",
			"name": "index",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		}, {
			"path": "pages/home/home",
			"name": "home",
			"meta": {
				"auth": false, //需要登录
				"async": true, //是否同步
				"title": "首页", //标题
				"group": "商城" //分组
			},
			"style": {
				"navigationBarTitleText": "",
				"enablePullDownRefresh": false
			}
 
		},{
			"path": "pages/haha/haha",
			"name": "haha",
			"meta": {
				"auth": true, //需要登录
				"async": true, //是否同步
				"title": "首页", //标题
				"group": "商城" //分组
			},
			"style": {
				"navigationBarTitleText": "",
				"enablePullDownRefresh": false
			}
 
		}
	],
	"globalStyle": {
		"navigationBarTextStyle": "black",
		"navigationBarTitleText": "uni-app",
		"navigationBarBackgroundColor": "#F8F8F8",
		"backgroundColor": "#F8F8F8"
	}
}

  页面跳转和参数接收

  • push()
  • pushTab() : 跳转tar栏
  • replace() : 替换
  • replaceAll() : 替换所有
  • back() : 直接带上数字返回第几层
  • 注意:path和query配合使用,而name和params配合使用
//通过name方式跳转
this.$Router.push({
					name: 'home',
					params: {
						name: 'Joseph',
						age: 22
					}
				})
 
------------------------------------
//通过path形式进行跳转
this.$Router.push({
					 path: '/pages/haha/haha',
					    query: {
					        name: 'Josdep33333h',
					        age: 24
					    }
				})
-------------------------------------
//用uni形式跳转到新页面,并传递参数
uni.navigateTo({
					url:'/pages/home/home?id=2&name=Josep33333h'
				});

 获取参数

	onLoad(option) {
			//原生获取数据
				console.log("zz",option);
			// query传参
			    const query=this.$Route.query
				console.log(query);
			    // params传参
			    const params=this.$Route.params
				console.log(params);
		}

 文章来源地址https://www.toymoban.com/news/detail-421662.html

到了这里,关于uniapp路由—— uni-simple-router的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【uniapp项目路由,配置,修改uni ui默认样式,小程序端不生效问题】

    对不同端的css样式不一样 使用 #ifdef #endif 包裹 (其中 MP 表示小程序端,表仅在小程序端是那个样式) 对不同端package.json中导航配置不同 1.使用 #ifdef #endif 包裹 2.使用自带配置 button按钮中样式自带after 当写border样式的时候会有一些问题 去除after的border 使用uni.navicateTo() 路由

    2024年02月02日
    浏览(85)
  • uniapp小程序路由跳转,使用uni.navigateBack方法,实现跳转传参

    由于小程序跳转限制10层,为了尽可能的减少页面栈,在小程序中会用到uni.navigateBack()方法,使用中难免会遇到页面跳转之间传参的问题。uni.navigateBack和uni.navigateTo、uni.redirectTo方式不同,不能通过路由拼接的方式传参,以下是三种跳转的方法: 在小程序中uni.navigateTo和u

    2024年02月16日
    浏览(61)
  • uniapp小程序路由跳转,使用uni.navigateBack方法,实现页面返回上一页

    在小程序中uni.navigateTo和uni.redirectTo是通过路由拼接的方式传参 uni.navigateBack() 是一个用于在uni-app中进行页面后退操作的API。它可以让你返回到上一个页面。在给定的示例中,uni.navigateBack() 被调用并传入了一个对象作为参数。该对象具有一个属性 delta,用于指定要后退的页面

    2024年04月28日
    浏览(46)
  • uniapp uni.showLoading uni.showToast闪关闭问题修改

    uniapp 微信真机环境 uni.showToast 不显示问题 微信小程序官方文档 noConflict 解决混用即可解决问题

    2024年02月07日
    浏览(38)
  • uniapp画图 uni.createcanvascontext

    需求:分享图片,图片上下内容固定,中间内容动态获取 步骤: 1.用uni.createcanvascontext绘制图片 html js 2.开始画图(部分代码) 3.注意 绘制图片cxt.drawImage时图片路径只能是本地路径,若为网络地址可使用getImageInfo转换为本地路径,例: 若图片下层有背景颜色,需绘制块完成

    2024年02月14日
    浏览(31)
  • uniapp:3分钟搞定在线推送uni.createPushMessage,uni.onPushMessage

    安卓端 在线推送功能演示: 1、dcloud后台申请开通uniPush dcloud后台 (1):找到我的应用 (2):点进去后,各平台信息,点击新增 (3):填写包名,签名等信息 包名:就是你原生APP-云打包 时的Android包名 SHA1和SHA256:参考我的另一篇文章,详细介绍了如何生成证书,和获取

    2024年01月18日
    浏览(32)
  • uniapp 文件上传 uni.uploadFile

    在uniapp中,您可以使用 uni.uploadFile 和 uni.downloadFile API进行文件上传和下载。以下是示例代码和说明: 上面的代码使用 uni.chooseImage 方法选择一个或多个本地图片,在 uni.uploadFile 方法中通过传递路径,文件名称和其他表单数据直接实现文件上传。在成功或失败时,消息将通过

    2024年02月15日
    浏览(54)
  • #Uniapp:uni.request(OBJECT)

    uni.request(OBJECT) 发起网络请求。 示例 属性—OBJECT 参数说明 OBJECT 参数说明 https://uniapp.dcloud.net.cn/api/request/request.html 参数名 类型 必填 默认值 说明 平台差异说明 url String 是 开发者服务器接口地址 data Object/String/ArrayBuffer 否 请求的参数 App 3.3.7 以下不支持 ArrayBuffer 类型 header

    2024年01月24日
    浏览(53)
  • uniapp全局拦截之uni.addInterceptor

    这个就很让人无语。。。。试了几次发现首次进入页面不拦截,准备做一个uniapp一进来判断授权的情况,但是这个只有第一次之后才会触发(因为我做的是微信公众号的H5页面的分享出去所以会需要首次进入拦截,如果对于首次登录拦截没有要求的可见最下边代码)。。分了两种

    2024年02月11日
    浏览(34)
  • uniapp-uni-easyinput使用

    代码如下

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包