1 Star 0 Fork 0

锦鹏 / pd-taro-router

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

pd-taro-router

taro的router, 自动生成对应的页面属性ts和路由拦截

使用

安装

npm i pd-taro-router -D

或改package.json
"pd-taro-router": "git+https://gitee.com/zhengjinpeng/pd-taro-router.git#v1.0.1",

使用插件

/config/index.js

const config = {
  plugins: [
    ["pd-taro-router"]
  ]
}

根据taro的app.config.ts的注册页面来生成

每个页面里都得加个文件 如首页创建文件/src/pages/index/route.config.ts `` /** 路由url参数 / export type PageParams = { id: number; title: string; }; /* 路由data参数 / export type PageData = { users: { id: number; name: string; sex: "boy" | "girl"; }[]; }; /* 路由返回页面参数 / export type PageBackData = { id: number; name: string; }; /* 路由中间件自定义参数 */ export const middlewareConfig = { mustLogin: true, role: [1, 2, 3], };


生成文件在`/types/taro-route.config.d.ts` 

### 编写自定义跳转
重写taro的页面跳转函数
```ts
import Taro, { useRouter } from "@tarojs/taro";
import type { RoutePageData } from "../../types/taro-route.config";


const pages: {
  page: string;
  data: any;
}[] = [];

const beforePushPage = (routeData: RoutePageData) => {
  let url = routeData.url;
  let page = "";
  if (url.includes("?")) {
    page = url.split("?")[0];
  } else {
    page = url;
  }
  let params = routeData.params || {};
  if (Object.keys(params).length) {
    if (!url.includes("?")) {
      url += "?";
    }
    Object.keys(params).forEach((key) => {
      let value = params[key];
      if (typeof value === "object") {
        console.error("params禁止上传对象:"+key);
      }
      url += `&${key}=${params[key]}`;
    });
  }

  pages.push({
    page: page,
    data: routeData.data,
  });
  return {
    url,
  };
};
export const navigateTo = (routeData: RoutePageData) => {
  const { url } = beforePushPage(routeData);
  Taro.navigateTo({
    url,
    success: routeData.success,
    fail: (res) => {
      routeData.fail?.(res);
      pages.pop();
    },
  });
};

空文件

简介

taro路由插件,自动生成路由相关ts声明 展开 收起
TypeScript 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/zhengjinpeng/pd-taro-router.git
git@gitee.com:zhengjinpeng/pd-taro-router.git
zhengjinpeng
pd-taro-router
pd-taro-router
master

搜索帮助