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

徐州建站程序wordpress调用多个标签

徐州建站程序,wordpress调用多个标签,wordpress登陆慢,wordpress仿站难吗目录 简介React Router的三种使用模式声明模式数据模式框架模式 React Router7声明模式使用方法在入口文件引入BrowserRouter配置一个路由组件管理路由将路由组件引入App.tsx嵌套路由链接式路由导航 \ 和 \<Link>编程式路由导航 简介 React Router 是 React 的多策略路由…

目录

  • 简介
  • React Router的三种使用模式
    • 声明模式
    • 数据模式
    • 框架模式
  • React Router7声明模式使用方法
    • 在入口文件引入BrowserRouter
    • 配置一个路由组件管理路由
    • 将路由组件引入App.tsx
    • 嵌套路由
    • 链接式路由导航 \ 和 \<Link>
    • 编程式路由导航

简介

React Router 是 React 的多策略路由器。在React应用中最新的React Router7有三种使用模式,分别是声明模式、数据模式、框架模式。从声明式模式转变为数据模式再转变为框架模式会增加更多功能,但代价是架构控制。使用模式取决于我们使用的顶级路由器 API。

React Router的三种使用模式

声明模式

声明模式启用了基本的路由功能,如将URL与组件匹配、在应用程序中导航,以及通过、useNavigate和useLocation等API提供活动状态。

import { BrowserRouter } from "react-router";ReactDOM.createRoot(root).render(<BrowserRouter><App /></BrowserRouter>
);

数据模式

通过将路由配置移动到React渲染之外,数据模式使用loader、action和useFetcher等API添加了数据加载、操作、挂起状态等。数据模式将路由配置用hooks创建一个router实例,类似于Vue中的vue-router的使用方法,如果对Vue很熟悉,可以使用数据模式。

import {createBrowserRouter,RouterProvider,
} from "react-router";let router = createBrowserRouter([{path: "/",Component: Root,loader: loadRootData,},
]);ReactDOM.createRoot(root).render(<RouterProvider router={router} />
);

框架模式

框架模式将数据模式与Vite插件包装在一起,通过以下方式添加完整的React Router体验:

  • 类型安全href
  • 类型安全路由模块API
  • 智能代码分割
  • SPA、SSR和静态渲染策略
import { index, route } from "@react-router/dev/routes";export default [index("./home.tsx"),route("about", "./about.tsx"),
];

具体的使用模式选择和三种模式的API参考:React Router7选择使用模式

React Router7声明模式使用方法

我的 React 项目采用 Vite + TypeScript构建(使用JavaScript也不影响观看),声明模式的路由已经足够使用了,所以我采用声明式路由,这也是React Router的经典使用方法,数据模式使用方法是在v6.4版本之后引入的,类似vue-router的使用方式。

在入口文件引入BrowserRouter

BrowserRouter 是一个用于管理路由的组件,它的作用如下:

  • 监听浏览器地址栏的变化,并根据路由配置渲染对应的组件。
  • 允许用户通过浏览器的前进、后退按钮或代码中的导航操作改变 URL,并同步更新视图。
  • 使用干净的URL,不像 HashRouter 那样带 # 号( BrowserRouter和HashRouter的区别)。
// src/main.tsx
import { createRoot } from 'react-dom/client'
import App from './App.tsx'
import { BrowserRouter } from "react-router";createRoot(document.getElementById('root')!).render(<BrowserRouter><App /></BrowserRouter>
)

配置一个路由组件管理路由

在src目录下,我们新建一个文件夹routes,然后创建文件index.tsx,我们将所有的路由规则都写在这个组件中。

// /src/routes/index.tsx
import React from 'react';
import Layout from '@/views/Layout/index'
import Login from '@/views/Login/index'
import { Route, Routes } from 'react-router';
import Album from '@/views/Album';
import AddAlbum from '@/views/Album/AddAlbum';
import Photo from '@/views/Photo';
import Video from '@/views/Video';
import Home from '@/views/Home';
import AlbumList from '@/views/Album/AlbumList';
import DelAlbum from '@/views/Album/DelAlbum';
import EditAlbum from '@/views/Album/EditAlbum';const APP: React.FC = () => {return (<div><Routes><Route path='/' element={<Layout />}><Route index element={<Home />} />{/* 嵌套路由 */}<Route path='album' element={<Album />}><Route index element={<AlbumList />}></Route><Route path='addAlbum' element={<AddAlbum />}></Route><Route path='delAlbum' element={<DelAlbum />}></Route><Route path='editAlbum' element={<EditAlbum />}></Route></Route><Route path='photo' element={<Photo />} /><Route path='video' element={<Video />} /></Route><Route path='/login' element={<Login />} /></Routes></div>);
}
export default APP

Route 组件用于 定义 URL 路径,并指定在该路径下需要渲染的组件。Routes 是一个用于定义路由的组件,它管理多个 Route 组件,并根据当前 URL 渲染匹配的组件。@是使用了路径别名,可以直接从src目录开始寻找文件(vite+react项目配置项目路径别名)

将路由组件引入App.tsx

// /src/App.tsx
import React from 'react';
import Routes from '@/routes/index';const App: React.FC = () => {return (<><Routes></Routes></>);
}
export default App

在App.tsx中引入路由组件后,创建对应的路由组件后就可以进行路由跳转了。

嵌套路由

我们在routes/index.tsx中使用了嵌套路由,嵌套路由中子路由的path属性不需要加 “/” 。

<Route path='album' element={<Album />}><Route index element={<AlbumList />}></Route><Route path='addAlbum' element={<AddAlbum />}></Route><Route path='delAlbum' element={<DelAlbum />}></Route><Route path='editAlbum' element={<EditAlbum />}></Route>
</Route>

对于这个嵌套路由,在父路由上我们需要加 Outlet 组件给子路由占位,代表子路由页面渲染的位置。在第一个子路由身上有index属性,代表默认显示的子路由页面。

// src/views/Album/index.tsx
import React from 'react';
import { Outlet } from 'react-router';const Album: React.FC = () => {return (<Outlet/>);
}
export default Album;

对于其他子路由页面,我们可以简单设置一下,可以显示效果就行。

// src/views/Album/AlbumList.tsx
const AlbumList: React.FC = () => {return (<><h1>相册列表</h1></>)
}export default EditAlbum;

链接式路由导航 <NavLink/> 和 <Link>

<NavLink/> 或 <Link> 可以生成一个路由链接,通过点击链接来进行路由跳转。 <NavLink/>该组件适用于那些需要渲染激活状态的导航链接。当 <NavLink> 处于激活状态时,它会自动拥有一个 .active 类名,以便于使用 CSS 轻松设置样式。不需要激活样式时,可以使用 <Link> 组件。

<NavLink to="/album" style={({ isActive }) => ({color: isActive ? "red" : "black",})}>相册
</NavLink><Link to="/album">相册</Link>

编程式路由导航

使用useNavigate这个钩子(hook)允许程序在无需用户交互的情况下将用户导航至新页面。使用场景如下:

  • 表单提交完成之后
  • 用户长时间没有操作退出系统
  • 有时间限制的游戏界面等等场景
import { useEffect } from "react";
import { useNavigate } from "react-router";const AddAlbum: React.FC = () => {const navigate = useNavigate();useEffect(() => {// 设置一个定时器,用于延迟 3 秒后进行页面跳转const timer = setTimeout(() => {navigate('/album/delAlbum');}, 3000)return () => {// 当组件卸载时,清除定时器。clearTimeout(timer)}}, [navigate])return (<div><h1>这是新建相册页面,3秒后跳转到删除相册界面</h1></div>)
}export default AddAlbum;
http://www.dtcms.com/wzjs/800320.html

相关文章:

  • 网站优化排名哪家好山东省双体系建设网站
  • 培训制作网站如何打开网页源代码
  • 深圳企业做网站网络营销工具大全
  • 江西网站设计服务网站反链一般怎么做
  • 网站开发自学难吗企业建站官网
  • 易语言可以做网站管理系统吗成都 建设网站
  • 网上网站开发公司网站建设调研
  • 杭州营销型网站怎么做西安十大网站制作公司
  • 做牛津纺衬衫的网站一人有限责任公司
  • 长沙网站优化培训wordpress第三性
  • 网站域名怎么修改吗公众号平台入口
  • 做app网站的公司名称华为开发平台
  • 免费行情软件网站下载大全安全吗网站h1标签的应用
  • 上海专业网站建设公司站霸网络蚌埠网络科技有限公司
  • 任丘市做网站价格北极星招聘网
  • 巩义网站公司网站开发微信支付详细教程
  • 中交建设集团天津公司网站品牌网站设计联系
  • 广东建设工程协会网站电商网站开发人员
  • 上海网站建设官网wordpress tag标签调用
  • 地州电视网站建设流程中国乐清网官网
  • 开个微网站需要什么新闻热点事件2021(最新)10月
  • 网站关键词书写步骤网站建设销售ppt模板
  • 北京建站者公司网站制作的地方
  • 基于c 的视频网站开发天河建设网站专家
  • 网站建设哪种好网站备案需要什么条件
  • 做海报兼职网站深圳网站建设机构
  • 网站建设上传宝贝xampfrontpage怎么制作网页
  • 网站建设要求 优帮云运河经济开发区建设局网站
  • 昆明网站排名优化在网站后台做网页
  • 九江 网站建设惠州seo推广外包