react学习总结(二)之案例分享

一.项目框架的搭建

1./src/pages下建不同的页面Header.jsx,About.jsx,Home.jsx, Message.jsx,News.jsx,Detail.jsx

Header.jsx

import React from 'react'
import { useNavigate } from 'react-router-dom'export default function Header() {const navigate = userNavigate()function back () {navigate(-1)}function forward () {navigate(1)}return (<div><div className="col-xs-offset-2 col-xs-8"><div class="page-header"><h2>React Router Demo</h2><button onClick={back}>后退</button><button onClick={forward}>前进</button></div></div></div>)}

About.jsx:

import React from 'react'
export default function About ()  {return (<h3>我是About的内容</h3>)
}

Home.jsx:

import React from 'react'
import { NavLink, Navigate, Outlet } from 'react-router-dom'
export default funciton Home () {const [sum, setSum] = React.useState(1)return (<div><h3>我是Home的内容</h3>{sum === 2 ? <Navigate to="/about" replace={true} />: <div>当前的sum的值是:</div>}<div><ul className="nav nav-tabs"><li><NavLink className="list-group-item" to="message">Message</NavLink></li><li><NavLink className="list-group-item" to="news">News</NavLink></li></ul><Outlet/></div></div>)
}

Message.jsx

import React from 'react'
export defakt function Message () {return (<div><ul><li><a href="#">message001</a></li></ul></div>)
}

News.jsx

import React from 'react'
import { Link, Outlet, useNavigate } from 'react-router-dom'export default function News () {const navigate = userNavigate()const [news] = React.useState([{id: '001', title: 'news0001', content: '锄禾日当午'},{id: '002', title: 'news0002', content: '汗滴禾下土'},{id: '003', title: 'news0003', content: '谁知盘中餐'},{id: '004', title: 'news0004', content: '粒粒皆辛苦'},])function showDetail (subNews) {navigate('detail', {replace: false,state: {id: subNews.id,title: subNews.title,content: subNews.content}})   }return (<div><ul>{news.map((subNews) => {return (<li key={subNews.id}><Link to="detail" state={{id: subNews.id,title: subNews.title,content: subNews.content}}>{subNews.title}</link>&nbsp;&nbsp;<button onClick={() => showDetail(subNews)}>查看详情</button></li>)})}</ul></div>)}

Detail.jsx

import React from 'react'
import {userLocation} from 'react-router-dom'
export default function Detail () {const {state: {id, title, content}} = useLocation()return (<ul><li>id</li><li>title</li><li>content</li></ul>)
}

2./src/routers下建index.js(用于项目引入所有的页面路径)

import { Navigete } from 'react-router-dom'
import About from '../pages/About'
import Home from '../pages/Home'
import Message from '../pages/Message'
import News from '../pages/News'
import Detail from '../pages/Detail'
export defult[{path: '/about',element: <About/>},{path: '/home',element: <Home />,children: [{path: 'message',element: <Message/>},{path: 'news',element: <News/>,children: [path: 'detail',element: <Detail/>]}] },{path: '/',element: <Navigate to="/about" / >}
]

3./src 下建App.jsx(用于引入所有的页面路由)

import React from 'react'
import { NavLink, useRoutes } from 'react-router-dom'
import routes from './routes'
import Header form './pages/Header'
import './App.css'export default function App () {const element = userRoutes(Routes)funciton computedClassName({isActive}) {return  isActive ? 'list-group-item chose' : 'list-group-item'}return (<div><div claassName="row"><Header/></div><div className="row"><div className="col-xs-2 col-xs-offset-2"><div className="list-group"><NavLink className={computedClassName} to="/about">About</NavLink><NavLink className={computedClassName} to="/home">Home</NavLink></div></div><div className="col-xs-6"><div class="panel"><div className="panel-body">{element}</div></div></div></div></div>)
}

4./src 下建App.css (用于引入项目的样式)

.list-group-item.chose {background: pink !important;color: #FFF !important;
}.App {text-align: center;
}.App-logo {height: 40vmin;pointer-events: none;
}@media (prefers-reduced-motion: no-preference) {.App-logo {animation: App-logo-spin infinite 20s linear;}
}.App-header {background-color: #282c34;min-height: 100vh;display: flex;flex-direction: column;align-items: center;justify-content: center;font-size: calc(10px + 2vmin);color: white;
}.App-link {color: #61dafb;
}@keyframes App-logo-spin {from {transform: rotate(0deg);}to {transform: rotate(360deg);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++多线程:线程的创建、join、detach、joinable方法(二)

1、线程的开始与结束 程序运行起来&#xff0c;生成一个进程&#xff0c;该进程所持有的主线程开始自动运行&#xff0c;main主线程运行完所有的代码从main函数中返回表示整个进程运行完毕&#xff0c;标志着主线程和进程的死亡&#xff0c;等待操作系统回收资源&#xff0c;因…

nginx如何清理页面缓存

在 Nginx 中&#xff0c;清理页面缓存通常涉及配置缓存头以控制缓存行为&#xff0c;或者使用外部工具或机制来清除缓存。以下是一些建议来管理和清理 Nginx 的页面缓存&#xff1a; 配置缓存头&#xff1a; Nginx 本身不直接提供缓存机制&#xff0c;但可以通过配置 proxy_cac…

安全算法 - 国密算法

国密算法是中国自主研发的密码算法体系&#xff0c;包括对称加密算法、非对称加密算法和哈希算法。其中&#xff0c;国密算法采用SM4作为对称加密算法&#xff0c;SM2作为非对称加密算法&#xff0c;以及SM3作为哈希算法。国密算法在信息安全领域具有重要意义和广泛应用&#x…

Cocos Creator 常见问题记录

目录 问题1、精灵图九宫格&#xff0c;角度不拉伸 问题2、BlockInputEvents 防止透屏 问题1、精灵图九宫格&#xff0c;角度不拉伸 点击编辑&#xff0c;拖拽到可变区域 问题2、BlockInputEvents 防止透屏

【独立开发前线】Vol.26 【独立开发产品】吉光卡片-让你的文字变得酷炫起来

今天给大家分享一下 独立开发前线 社区成员张小吉 的作品 吉光卡片&#xff1b; 这是一款iOS的APP&#xff0c;下载&#xff1a;吉光卡片&#xff0c;主要功能是帮你制作酷炫的文字卡片&#xff0c;用精美的卡片让你的文字生动起来。 展示效果如下&#xff1a; 你可以用它制作…

【公示】2023年度青岛市级科技企业孵化器拟认定名单

根据《青岛市科技企业孵化器管理办法》&#xff08;青科规〔2023〕1号&#xff09;&#xff08;以下简称《管理办法》&#xff09;、《关于开展2023年度市级科技企业孵化器认定申报工作的通知》&#xff0c;经申报受理、区市推荐、形式审查、专家评审及现场核查等程序&#xff…

为何keil编译信息显示data使用量不是整数

在使用Keil软件进行嵌入式系统开发时&#xff0c;编译后显示的数据使用量&#xff08;Data Usage&#xff09;可能会以小数形式显示。这种情况通常是由以下几个原因造成的&#xff1a; 1.内存对齐&#xff1a;为了提高内存访问效率&#xff0c;编译器会对数据进行对齐处理。例…

【笔记】动⼿学深度学习(花书)|| Aston Zhang Mu Li Zachary C. LiptonAlexander J. Smola

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 前言 第一章 深度学习简介 第二章 P 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言本书…

BasicVSR++模型转JIT并用c++libtorch推理

BasicVSR模型转JIT并用clibtorch推理 文章目录 BasicVSR模型转JIT并用clibtorch推理安装BasicVSR 环境1.下载源码2. 新建一个conda环境3. 安装pytorch4. 安装 mim 和 mmcv-full5. 安装 mmedit6. 下载模型文件7. 测试一下能否正常运行 转换为JIT模型用c libtorch推理效果 安装Ba…

使用docker 安装oracle 11g 挂载数据目录并修改SID centos-7

建议&#xff1a;建议使用其它系统去装ubuntu或Rocky&#xff08;因为centos已经停止维护&#xff09; 1、安装docker 这里就不细写了&#xff0c;可以查看清华镜像源或者阿里镜像源 清华&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/ 阿里&#xff1a;ht…

2434. 使用机器人打印字典序最小的字符串

点击跳转题目 本题学到两点&#xff1a; 1.初始化数组&#xff0c;全部为0的简单写法。之前都是 int arr[26]; memset(arr,0,sizeof(arr));2.if条件中的&&部分左右顺序不能颠倒。颠倒报错&#xff0c;之前一直没重视。 思路&#xff1a; 遍历s&#xff0c;push当前字…

[c++]类和对象常见题目详解

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

2024.03.19 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | RoboSense 速腾聚创2024届春招启动&#xff08;内推&#xff09; 校招 | RoboSense 速腾聚创2024届春招启动&#xff08;内推&#xff09; 2、实习 | 百度智能驾驶事业群组 202…

kanzi 3d知识点

整理学习资料 名字链接Kanzi视频合集中科创达-智能座舱视频专辑-中科创达-智能座舱视频合集-哔哩哔哩视频 (bilibili.com)Kanzi在线文档Working with … - Kanzi framework 3.9.7 documentationThe Book of ShadersThe Book of Shaders着色器语言Shader_着色语言Shading Langua…

Vim - 文本编辑器 Vi vs Vim

你是否应该在学习 Vim 之前先学习 Vi&#xff0c;这完全取决于您自己、您的要求以及您的具体目标和需求。Vim 是 Vi 的扩展、增强和改进版本&#xff0c;它包括 Vi 的所有功能以及许多附加功能。 简约&#xff1a; Vi 设计简约。先学习 Vi 可以让你对基础知识有扎实的了解&…

malloc是如何分配内存|malloc(1)分配多大内存|free释放内存,会还给操作系统吗?

前言 大家好&#xff0c; 我jiantaoyab&#xff0c;这篇文章给大家介绍mallo和free面试中常问到的问题。 malloc是如何分配内存的&#xff1f; 如果用户分配的内存小于128KB&#xff0c;则通过brk()申请内存 如果用户分配的内存大于128KB&#xff0c;则通过mmap()申请内存 简…

数据分析之POWER Piovt的KPI设置

内容总结&#xff1a; 1.两个表格关联不上&#xff1a;需要添加辅助列&#xff0c;建立关联 2.添加辅助列后还关联不上&#xff1a;将虚线变为实线 3.根据需求要增加一些度量值 4.设置KPI后&#xff0c;绝对值选1后设定百分比 5.在透视表里面加入KPI状态 导入所关联的数据后建立…

游戏领域AI智能视频剪辑解决方案

游戏行业作为文化创意产业的重要组成部分&#xff0c;其发展和创新速度令人瞩目。然而&#xff0c;随着游戏内容的日益丰富和直播文化的兴起&#xff0c;传统的视频剪辑方式已难以满足玩家和观众日益增长的需求。美摄科技&#xff0c;凭借其在AI智能视频剪辑领域的深厚积累和创…

SQLBolt,一个练习SQL的宝藏网站

知乎上有人问学SQL有什么好的网站&#xff0c;这可太多了。 我之前学习SQL买了本SQL学习指南&#xff0c;把语法从头到尾看了个遍&#xff0c;但仅仅是心里有数的程度&#xff0c;后来进公司大量的写代码跑数&#xff0c;才算真真摸透了SQL&#xff0c;知道怎么调优才能最大化…

数据可视化之折线图plot

import matplotlib.pyplot as plt plt.rcParams[font.family] [SimHei]# 查看matplotlibde文件地址# import matplotlib # print(matplotlib.matplotlib_fname()) # plt.rcParams[font.sans-serif] [SimHei] # 准备数据time [20200401,20200402,20200403,20200404,20200405…