当前位置: 首页 > news >正文

好的策划方案网站郑州建站程序

好的策划方案网站,郑州建站程序,上海做网站最好的公司,安徽网络优化方案react-router 为了满足开发者更多路由历史存储场景,提供了以下几种模式: 浏览器原生历史记录 浏览器 hash 内存型 服务端记录 以上实现分别对应于一下 API 实现: createBrowserRouter:浏览器提供的历史管理。 createHashRou…

react-router 为了满足开发者更多路由历史存储场景,提供了以下几种模式:

  • 浏览器原生历史记录

  • 浏览器 hash

  • 内存型

  • 服务端记录

以上实现分别对应于一下 API 实现:

  • createBrowserRouter:浏览器提供的历史管理。

  • createHashRouter:基于 hash 的路由管理,#hello,但是呢通常 # 又可以作为锚链接。

  • createMemoryRouter:内存型路由,路由的管理存储在内存中。

  • createStaticRouter:SSR 服务端的。

1. createBrowserRouter

通过浏览器原生路由进行路由态管理,页面跳转通过 pushState、popState 方法实现。

import * as React from "react";
import * as ReactDOM from "react-dom";
import {createBrowserRouter,RouterProvider} from "react-router-dom";import Root, { rootLoader } from "./routes/root";
import Team, { teamLoader } from "./routes/team";const router = createBrowserRouter([{path: "/",element: <Root />,loader: rootLoader,children: [{path: "team",element: <Team />,loader: teamLoader,},],},
]);ReactDOM.createRoot(document.getElementById("root")).render(<RouterProvider router={router} />
);

需要注意的是,使用 browserRouter,一般都需要使用类似 Nginx 做静态资源代理,另外需要注意 404 的情况,一般都需要添加 try_files 处理。

location / {try_files $uri /index.html;
}

2. createHashRouter(不推荐)

请注意,这个方法非常不推荐,他的用武之地就在于,我们没有 Nginx 作为静态资源代理,我们可能就无法使用浏览器历史作为我们路由状态的存储,这时可以选择 hash router 方案,但是注意,真的非常不推荐,除非是你自己的个人项目。

import * as React from "react";
import * as ReactDOM from "react-dom";
import {createHashRouter,RouterProvider} from "react-router-dom";import Root, { rootLoader } from "./routes/root";
import Team, { teamLoader } from "./routes/team";const router = createHashRouter([{path: "/",element: <Root />,loader: rootLoader,children: [{path: "team",element: <Team />,loader: teamLoader,},],},
]);ReactDOM.createRoot(document.getElementById("root")).render(<RouterProvider router={router} />
);

3. createMemoryRouter

用于创建一个内存型路由,路由表与历史记录栈存储在内存中,当页面刷新时,路由信息丢失。

import * as React from "react";
import * as ReactDOM from "react-dom";
import {createMemoryRouter,RouterProvider} from "react-router-dom";import CalendarEvent from "./routes/calendarEvent";const routes = [{path: "/events/:id",element: <CalendarEvent />,loader: () => FAKE_EVENT,},
];const router = createMemoryRouter(routes, {initialEntries: ["/", "/events/123"],initialIndex: 1,
});ReactDOM.createRoot(document.getElementById("root")).render(<RouterProvider router={router} />
);

其实这种内存型历史记录,我们自己通过状态管理都能够轻松实现,他这就类似于我们定义了集中状态,然后当状态更新时渲染不同页面。而这里只是多了一些关于路由操作方法的实现,比如:push、pop 等。

4. createStaticRouter

如果我们需要实现服务端渲染,那么在服务端的路由处理则需要使用该 API,因为我们知道客户端的路由是基于浏览器的 history,而服务端是没有浏览器环境的。

import {createStaticHandler,createStaticRouter,StaticRouterProvider} from "react-router-dom/server";
import Root, {loader as rootLoader,ErrorBoundary as RootBoundary} from "./root";const routes = [{path: "/",loader: rootLoader,Component: Root,ErrorBoundary: RootBoundary,},
];export async function renderHtml(req) {let { query, dataRoutes } = createStaticHandler(routes);let fetchRequest = createFetchRequest(req);let context = await query(fetchRequest);// If we got a redirect response, short circuit and let our Express server // handle that directlythrow context;
}let router = createStaticRouter(dataRoutes, context);
return ReactDOMServer.renderToString(<React.StrictMode><StaticRouterProvider router={router} context={context} /></React.StrictMode>
);

http://www.yayakq.cn/news/151952/

相关文章:

  • 做网站要用什么编程语言阿里域名注册网站
  • 好的漂亮的淘宝客网站模板做网站卖什么
  • 织梦如何仿手机网站源码下载好看的ui网站页面设计
  • 摄影网站建设目的网站开发和软件开发区别
  • 南翔企业网站开发建设师德师风建设网站
  • 招聘网站建设人员条件东莞常平中转场
  • 美橙互联 送网站双减之下托管班合法吗
  • 建设工程有限公司 网站小程序开发源码
  • 中国建设银行英语网站首页计算机毕设网站开发中期报告
  • 作网站浏览器无法打开住房和建设网站
  • 重庆网站托管WordPress搭建聊天室
  • 新乡手机网站建设官网国产服务器厂商排名
  • 网站建设哪家强wordpress是建站最快的
  • 自动跳转手机网站代码建筑工程公司起名大全
  • 网页导航视频网站在线制作教程山东城市建设厅网站
  • 新乡做网站价格ps做网页怎么在网站上打开
  • 网站推广做多大尺寸设计logo的网址
  • 国外专业做集装箱别墅网站上海建设银行公司网站
  • 注册网站免费注册qq邮箱在哪个网站上做预收款报告
  • 佛山外贸网站建设流程网络营销作业
  • 子洲网站建设制作百度小说风云榜排行榜官网
  • 外贸网站 海外推广大连市工程建设信息网
  • 平台网站开发沈阳妇科医院排名最好的医院
  • 制作网站站用的软件沧州网站建设报价
  • 河北省建设银行网站首页营销方案案例范文
  • 做相册哪个网站好用网上怎么自己注销营业执照
  • 理财网站开发页面简洁的导航网站
  • 如何做网站旅游产品分析江阴网站制作设计
  • 网站建设 套餐全国建筑行业资质平台查询官网
  • 做淘宝货源网站免注册制作网站