uni-crazy-router 开源项目最佳实践教程

uni-crazy-router 开源项目最佳实践教程

uni-crazy-router 一个更贴合uni-app的router插件,一切都使用uni-app原生钩子实现和方法实现,抛弃了vue-router的影子 uni-crazy-router 项目地址: https://gitcode.com/gh_mirrors/un/uni-crazy-router

1、项目介绍

uni-crazy-router 是一个专为 uni-app 开发者设计的路由插件。它基于 uni-app 的原生跳转方法,提供了一种更加贴合 uni-app 开发模式的路由解决方案。该插件不需要配置路由表,完全使用 uni-app 自身的钩子和属性实现,不耦合于 Vue 的组件,更不依赖 Vue-router。它支持 uni-app Vue3 版本,并且提供了防抖防刷新的处理,避免了小程序可以连续疯狂点击触发窗口的问题。

2、项目快速启动

步骤 1:安装插件

在项目目录下执行以下命令安装 uni-crazy-router:

npm i uni-crazy-router -S

步骤 2:引入插件

根据你的 Vue 版本,引入 uni-crazy-router 并进行配置。

Vue3 版本

src/main.js 文件中:

import { createSSRApp } from "vue";
import App from "./App.vue";
import { setupRouter } from "./router";

export function createApp() {
  const app = createSSRApp(App);
  // 注册路由
  setupRouter(app);
  return { app };
}

src/router/index.js 文件中:

import uniCrazyRouter from "uni-crazy-router";

export function setupRouter(app) {
  // 接收 vue3 的实例,并注册 uni-crazy-router
  app.use(uniCrazyRouter);
  // 配置路由拦截器
  uniCrazyRouter.beforeEach((to, from, next) => {
    // 逻辑代码
    next();
  });
  uniCrazyRouter.afterEach((to, from) => {
    // 逻辑代码
  });
  uniCrazyRouter.onError((to, from) => {
    // 逻辑代码
  });
}
Vue2 版本

src/main.js 文件中:

import Vue from 'vue';
import App from './App';
import './router';

Vue.config.productionTip = false;
App.mpType = 'app';

const app = new Vue({
  ...App
});
app.$mount();

src/router/index.js 文件中:

import Vue from 'vue';
import uniCrazyRouter from "uni-crazy-router";

Vue.use(uniCrazyRouter);

uniCrazyRouter.beforeEach((to, from, next) => {
  // 逻辑代码
  next();
});
uniCrazyRouter.afterEach((to, from) => {
  // 逻辑代码
});
uniCrazyRouter.onError((to, from) => {
  // 逻辑代码
});

步骤 3:使用插件

在页面中,你可以通过 uni.navigateTo 等原生方法触发跳转,并传递额外的页面参数:

uni.navigateTo({
  url: '/pages/test/test?a=1&b=1',
  routeParams: { c: 1, d: 1 },
  passedParams: { e: 1, f: 1 }
});

在目标页面中,你可以通过 this.$routeParamsthis.$passedParams 获取传递的参数:

export default {
  data() {
    return {
      title: 'Hello'
    };
  },
  onLoad() {
    console.log(this.$routeParams);
    console.log(this.$passedParams);
  }
};

3、应用案例和最佳实践

应用案例

uni-crazy-router 可以应用于各种 uni-app 项目,包括但不限于:

  • 移动端应用
  • 小程序
  • H5 应用

最佳实践

  • 使用 uni-crazy-router 进行路由拦截,可以有效地控制页面访问权限,例如登录拦截、VIP 用户拦截等。
  • 可以将不同的拦截逻辑拆分到不同的模块中,便于管理和维护。
  • 使用 afterNotNext 函数在拦截路由时进行额外的操作,例如跳转到其他页面。

4、典型生态项目

由于 uni-crazy-router 是一个路由插件,它可以直接应用于任何 uni-app 项目中,因此没有特定的生态项目与之关联。然而,uni-app 本身拥有庞大的生态系统,包括众多优秀的插件和组件,可以与 uni-crazy-router 搭配使用,构建出功能丰富的应用。

希望这篇教程能够帮助你更好地理解和使用 uni-crazy-router,为你的 uni-app 项目提供更灵活、更高效的路由解决方案。

uni-crazy-router 一个更贴合uni-app的router插件,一切都使用uni-app原生钩子实现和方法实现,抛弃了vue-router的影子 uni-crazy-router 项目地址: https://gitcode.com/gh_mirrors/un/uni-crazy-router

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛珑佳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值