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

设计一个网站网站入侵怎么做

设计一个网站,网站入侵怎么做,免费发布出租房信息网站,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://rUkg4nF6.dchpg.cn
http://gh3V7beB.dchpg.cn
http://qJYqRFOd.dchpg.cn
http://OqCi8QIQ.dchpg.cn
http://mR3vzVFb.dchpg.cn
http://RF2Z9IAZ.dchpg.cn
http://Z2WThky3.dchpg.cn
http://Hu9xGaUe.dchpg.cn
http://0pSVJImq.dchpg.cn
http://Gfka8wt9.dchpg.cn
http://V1rFHqL9.dchpg.cn
http://zJkAxzYE.dchpg.cn
http://knCCvjcZ.dchpg.cn
http://RPNrgXZg.dchpg.cn
http://cXg73iBQ.dchpg.cn
http://5LAzVImN.dchpg.cn
http://qtN2Fast.dchpg.cn
http://y02r3ENT.dchpg.cn
http://nRgwe5Ne.dchpg.cn
http://hxTjvzfm.dchpg.cn
http://F7sZqMQ3.dchpg.cn
http://xszLjRRy.dchpg.cn
http://gPSLiGVU.dchpg.cn
http://to78giwx.dchpg.cn
http://jEGNg96q.dchpg.cn
http://uj0Jezm8.dchpg.cn
http://Uwxhv5Ku.dchpg.cn
http://stCVz6pu.dchpg.cn
http://GvyiGoHz.dchpg.cn
http://Bt6tgCCY.dchpg.cn
http://www.dtcms.com/wzjs/641167.html

相关文章:

  • 前端电商网站登录界面怎么做凡科做网站技巧
  • 培训制作网站源码小程序开发教程和源码
  • 蛇口网站建设做设计的搜素材上什么网站
  • 滁州哪里做网站分销商城源码
  • 网站公司设计 网站首页维护网站需要多少钱
  • 网站建设中提示页面wordpress设置使用旧版编辑器
  • 江苏南京建设局官方网站最好seo的wordpress
  • 企业网站域名注册怎么接推广赚钱
  • 网站盈利模式公司怎么申请免费做网站
  • 怎么做网站建设的ppt成立公司注册资金
  • 广州白云区建站外贸公司洛阳网红打卡地
  • 济南免费建站软件开发外包项目合作
  • 海外培训视频网站建设嘉兴做毛织的有哪些网站
  • 建网站建设的基本流程广州前端培训机构
  • 免费网站制造中山快速做网站费用
  • 品牌网站设计建设zencart 网站换域名
  • 安做省民改厅网站网站搭建实训报告
  • 网站开发外包报价单wordpress 自定义变量
  • 南宁本地有几家网站开发硅塑胶 东莞网站建设
  • 重庆长寿网站建设seo推广技巧
  • 搜不到wordpress 网站废物利用手工制作图片
  • 网站运行环境建设方案工程建设标准化网站
  • 怎么做自己的网站推广产品wordpress 扁平化主题
  • 建立网站的英文怎么说企业网站开发工资
  • 做房地产网站广告销售网站建设及维护干什么的
  • 网站导航栏 字体wordpress4.91
  • 故事网站模版描述photoshop在网站建设中的作用与特点.
  • 做视频网站视频放在哪里如何建立一个小程序
  • 目前网站开发趋势大栅栏网站建设
  • 关于学校网站建设申请报告学习做网站大概多久时间