首页 > 其他分享 >react-router 6.9更新内容

react-router 6.9更新内容

时间:2023-03-11 21:57:23浏览次数:45  
标签:function React lazy Component react export error router 6.9

  1. 有两种方式可以定义路由:传递React Elements<Home />或传递React ComponentHome。但是如果它们同时存在,则以React Component优先。
    缺点: 通过React Component方式定义无法传递props,可以考虑使用全局状态管理。
const elementRoutes = [{
  path: '/',
  element: <Home />,
  errorElement: <HomeError />,
}]

const componentRoutes = [{
  path: '/',
  Component: Home,
  ErrorBoundary: HomeError,
}]

function Home() { ... }
function HomeError() { ... }
  1. 新增lazy route模块。在路由上新增了lazy() 属性。
    当用lazy={() => import("./a")}导入时会自动识别exportloader 、 action 、 element / Component 、 errorElement / ErrorBoundary 、 shouldRevalidate 、 handle等函数
    进行注入使用。减少了配置Route时属性的重复。
    缺点: 使用lazy(),无法使用react-routerloaderlazy同时加载的功能,还是跟以前一样是瀑布流加载方式。只是提升了开发体验。
// routes配置
let routes = createRoutesFromElements(
  <Route path="/" element={<Layout />}>
    <Route index element={<Home />} />
    <Route path="a" lazy={() => import("./a")} />
    <Route path="b" lazy={() => import("./b")} />
  </Route>
);
// component.tsx文件
// 直接导出一个“loader”
export async function loader({ request }) {
  let data = await fetchData(request);
  return json(data);
}

// 直接导出一个“组件”,而不需要从它创建一个React元素
export function Component() {
  let data = useLoaderData();

  return (
    <>
      <h1>You made it!</h1>
      <p>{data}</p>
    </>
  );
}

// 直接导出一个“ErrorBoundary”错误组件,而不需要从它创建一个React元素
export function ErrorBoundary() {
  let error = useRouteError();
  return isRouteErrorResponse(error) ? (
    <h1>
      {error.status} {error.statusText}
    </h1>
  ) : (
    <h1>{error.message || error}</h1>
  );
}

标签:function,React,lazy,Component,react,export,error,router,6.9
From: https://www.cnblogs.com/beilo/p/17207073.html

相关文章

  • vue项目vuerouter动态添加路由坑中之坑
    出了什么问题请求到的动态路由数据该如何应用?addRoute()?你想的太简单了!!!起因最近在用通过网络请求到的路由记录来进行动态路由渲染后端大佬说路由全部放前端不......
  • React-router-dom@5
    路由的发展阶段后端路由阶段早期的网站开发整个HTML页面是由服务器来渲染的,服务器直接生产渲染好对应的HTML页面,返回给客户端进行展示但是,一个网站,有很多页面......
  • react antd rangPicker组件选择当月、本月时间
    可以通过设置reactantdesign的RangePicker的disableDate的属性来实现只选择当月、本月时间的效果,实现代码如下1、设置RangePicker<RangePickerdis......
  • ReactiveProperty入门
    什么是ReactivePropertyReactiveProperty在ReactiveExtensions下支持异步功能。目标框架是.NETStandard2.0。ReactiveProperty的理念是有趣的编程.您可以使用Reac......
  • vue react框架
      Vue、React框架的价值(共同点)组件化数据视图分离,数据驱动视图——这是核心!只关注业务数据,而不用再关心DOM变化  vdom并不快,js操作DOM才是最快的但“数据......
  • vue如何通过$router.push传参数
    如何通过$router.push传参数下面通过A页面向B页面传值来举个例子://A页面:this.$router.push({name:'页面B',params:{data:'我是要传递的参数'}})//B......
  • React数字滚动组件 numbers-scroll
    数字滚动组件,也可以叫数字轮播组件,这个名字一听就是非常普通常见的组件,第一反应就是想找找网上大佬的东西顶礼膜拜一下,这一搜,还真是没找到趁手的╮(╯▽╰)╭。最近接了大......
  • vue router中useRouter,userRoute的区别
    ......
  • React+antd sorter实现排序并作汉化处理
    sorter实现排序sorter排序大致分为两种:第一种是数值类型:直接相加减就好第二种是字符串类型:需要用到 localeCompare方法 废话不多说,直接上代码     ......
  • IIS 前端发布-- React Ant Design Pro 篇
    前端发布--ReactAntDesignPro篇打开你的项目直接(build)发布,,,antd这个proxy.ts里的配置其实在生产环境是不生效没用,所以其实你在这里写啥都不影响。他只是用于你......