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

社区网站制作教程搭建网站平台需要多少钱

社区网站制作教程,搭建网站平台需要多少钱,安卓app快速开发工具,营销网站如何建设提示:reactrouter6.4版本,与reactrouter5.0的版本用法有区别,互不兼容需注意 文章目录 前言一、创建项目二、新建文件并引入react-router-dom、antd三、配置路由跳转四、效果五、遇到的问题六、参考文档总结 前言 需求:新建react项…

提示:reactrouter6.4+版本,与reactrouter5.0的版本用法有区别,互不兼容需注意

文章目录

  • 前言
  • 一、创建项目
  • 二、新建文件并引入react-router-dom、antd
  • 三、配置路由跳转
  • 四、效果
  • 五、遇到的问题
  • 六、参考文档
  • 总结


前言

需求:新建react项目,react-router-dom配置路由,引入antd

一、创建项目

1、创建与安装

npx create-react-app my-react-app
cd my-react-app

项目结构
在这里插入图片描述

npm install react-router-dom
npm install antd –save

在这里插入图片描述
2、修改文件
app.js

import './App.css';
function App() {return (<div>my react app</div>);
}
export default App;

app.css

.App {text-align: center;
}

3、启动预览

npm start

在这里插入图片描述

二、新建文件并引入react-router-dom、antd

1、新建文件

head.js、home.js、my.js、order.js、pay.js内容基本一致,贴一个例子,其余修改对应值即可

import React from 'react';class Pay extends React.Component {render() {return <div>Pay</div>;}
}
export default Pay;

在这里插入图片描述
main.js

import React from 'react';
import { Outlet } from "react-router-dom";
class Main extends React.Component {render() {return <div><Outlet /></div>;}
}
export default Main;

side.js

import React from 'react';
import Routes from '../routes';
import { Menu } from 'antd';
import { useNavigate } from "react-router-dom";
let menus = [];
Routes.forEach((item,index)=>{let obj = {key:index,label:item.label,}if(item.children){ item.children.forEach((citem,i)=>{citem.key=index+'-'+i;});obj.children = item.children}menus.push(obj);
});
export default function Side() {const navigate = useNavigate();function goPath(e){let keys = e.key.split('-');let route,cRoute;route = Routes[keys[0]];if(route.children){cRoute = route.children[keys[1]];}let path = route.path + (cRoute?'/'+cRoute.path:'');navigate(path);}return <div><MenudefaultSelectedKeys={['0']}defaultOpenKeys={['1']}mode="inline"theme="dark"items={menus}onClick={goPath}/></div>;
}

routes/index.js

import Home from '../components/home';
import My from '../components/my';
import Order from '../components/order';
import Pay from '../components/pay';
import Main from '../components/main';const Routes = [{path: "/",label:'首页',element: <Home/>,},{path: "main",label:'业务',element: <Main/>,children:[{path: "order",label:'订单',element: <Order/>,},{path: "pay",label:'支付信息',element: <Pay/>,},]},{path: "my",label:'我的',element: <My/>,},
];
export default Routes;

2、新建后文件结构
在这里插入图片描述

三、配置路由跳转

1、修改App.js和App.css文件
App.js

import { BrowserRouter ,Route,Routes} from "react-router-dom";
import './App.css';
import routes from './routes';
import Head from './components/head';
import Side from './components/side';
function renderRoute(){let arr = [];routes.forEach((item,i)=>{if(item.children){item.children.forEach((citem,ci)=>{arr.push(<Route key={i+'-'+ci} path={item.path+'/'+citem.path} element={citem.element}></Route>);})}else{arr.push(<Route key={i} path={item.path} element={item.element}></Route>);}})return arr;
}function App() {return (<div className="App"><BrowserRouter><div className='app_head'><Head/></div><div className='app_side'><Side/></div> <div className='app_main'><Routes>{ renderRoute() }</Routes></div> </BrowserRouter></div>);
}
export default App;

App.css

.App {text-align: center;position: absolute;top: 0;left: 0;right: 0;bottom: 0;
}
.app_head{position: absolute;top: 0;left: 0;width: 100%;height: 64px;background-color: #dbeff3;
}
.app_side{position: absolute;top: 64px;left: 0;bottom: 0;width: 320px;background-color: #707472;
}
.app_main{position: absolute;top: 64px;left: 320px;bottom: 0;right: 0;background-color: #fff;
}

四、效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、遇到的问题

在这里插入图片描述

useNavigate必须在router component里使用,side.js里调用的useNavigate,所以side
componet必须在BrowserRouter里

app.js错误写法

import { BrowserRouter ,Route,Routes} from "react-router-dom";
import './App.css';
import routes from './routes';
import Head from './components/head';
import Side from './components/side';
function renderRoute(){let arr = [];routes.forEach((item,i)=>{if(item.children){item.children.forEach((citem,ci)=>{arr.push(<Route key={i+'-'+ci} path={item.path+'/'+citem.path} element={citem.element}></Route>);})}else{arr.push(<Route key={i} path={item.path} element={item.element}></Route>);}})return arr;
}function App() {return (<div className="App"><div className='app_head'><Head/></div><div className='app_side'><Side/></div> <BrowserRouter><div className='app_main'><Routes>{ renderRoute() }</Routes></div> </BrowserRouter></div>);
}
export default App;

在这里插入图片描述在这里插入图片描述

useNavigate应该放在一个react function component里

side.js错误写法

import React from 'react';
import Routes from '../routes';
import { Menu } from 'antd';
import { useNavigate } from "react-router-dom";
let menus = [];
Routes.forEach((item,index)=>{let obj = {key:index,label:item.label,}if(item.children){ item.children.forEach((citem,i)=>{citem.key=index+'-'+i;});obj.children = item.children}menus.push(obj);
});
const navigate = useNavigate();
class Side extends React.Component {render() {function goPath(e){let keys = e.key.split('-');let route,cRoute;route = Routes[keys[0]];if(route.children){cRoute = route.children[keys[1]];}let path = route.path + (cRoute?'/'+cRoute.path:'');navigate(path);}return <div><MenudefaultSelectedKeys={['0']}defaultOpenKeys={['1']}mode="inline"theme="dark"items={menus}onClick={goPath}/></div>;}
}
export default Side;

在这里插入图片描述

useNavigate应该放在一个react function component里,而不是一个class component里

side.js错误写法

import React from 'react';
import Routes from '../routes';
import { Menu } from 'antd';
import { useNavigate } from "react-router-dom";
let menus = [];
Routes.forEach((item,index)=>{let obj = {key:index,label:item.label,}if(item.children){ item.children.forEach((citem,i)=>{citem.key=index+'-'+i;});obj.children = item.children}menus.push(obj);
});
class Side extends React.Component {render() {const navigate = useNavigate();function goPath(e){let keys = e.key.split('-');let route,cRoute;route = Routes[keys[0]];if(route.children){cRoute = route.children[keys[1]];}let path = route.path + (cRoute?'/'+cRoute.path:'');navigate(path);}return <div><MenudefaultSelectedKeys={['0']}defaultOpenKeys={['1']}mode="inline"theme="dark"items={menus}onClick={goPath}/></div>;}
}
export default Side;

六、参考文档

react中文官网
reactrouter官网
antd官网

总结

踩坑路漫漫长@~@

http://www.dt0577.cn/news/20439.html

相关文章:

  • wordpress类与函数的差别seo服务商排名
  • 王店镇建设中学网站电商运营工资大概多少
  • 上饶婚纱工作室网站建设软文推广案例500字
  • 专注移动网站建设seo运营招聘
  • 网站怎么查是哪家网络公司做的长沙网站se0推广优化公司
  • 国外自助建站网站正能量免费推广软件
  • 建立一个网站 优帮云合肥网站关键词优化公司
  • 微信做单页的网站网搜网
  • wordpress 自动封面微信搜一搜seo
  • 网站建设咨询话术我想做电商怎么加入
  • 秦皇岛哪家公司网站建设好网站seo应用
  • 建筑人才网档案查询一个网站的seo优化有哪些
  • 国网法治建设网站google广告投放
  • 贵阳做网站seo宁德seo优化
  • 大良网站建设基本流程seo快速收录快速排名
  • 网站优化公司电话网址信息查询
  • 找人做网站设计 哪个平台可以找seo站内优化公司
  • 做期货浏览哪些网站关键词优化推广排名软件
  • 键盘事件对网站交互免费自助建站哪个最好
  • 手机网站模板下载免费百度关键词怎么做
  • 江苏建设科技网站网络推广是什么意思
  • 设计网站要包含信息类型电脑培训班价目表
  • 南京 网站制作公司哪家好网上做广告宣传
  • 自己做同城购物网站网址注册
  • 建设银行网站注册企业百度网站推广
  • 南昌网站怎么做seoseo站点
  • 扬州做网站三只松鼠搜索引擎推广
  • 市场调研公司收费标准谷歌搜索优化
  • 做网站会很忙吗淮北网络推广
  • 怎么做电影网站app西宁网站seo