路由的使用

react-router

import React from 'react'

// 如果要使用 路由模块,第一步,运行 yarn add react-router-dom
// 第二步,导入 路由模块 // HashRouter 表示一个路由的跟容器,将来,所有的路由相关的东西,都要包裹在 HashRouter 里面,而且,一个网站中,只需要使用一次 HashRouter 就好了;
// Route 表示一个路由规则, 在 Route 上,有两个比较重要的属性, path component
// Link 表示一个路由的链接 ,就好比 vue 中的 <router-link to=""></router-link>
import { HashRouter, Route, Link } from 'react-router-dom' import Home from './components/Home.jsx'
import Movie from './components/Movie.jsx'
import About from './components/About.jsx' // 导入 日期选择组件
import { DatePicker } from 'antd' export default class App extends React.Component {
constructor(props) {
super(props)
this.state = {}
} render() {
// 当 使用 HashRouter 把 App 根组件的元素包裹起来之后,网站就已经启用路由了
// 在一个 HashRouter 中,只能有唯一的一个根元素
// 在一个网站中,只需要使用 唯一的一次 <HashRouter></HashRouter> 就行了
return <HashRouter>
<div>
<h1>这是网站的APP根组件</h1> <DatePicker></DatePicker> <hr /> <Link to="/home">首页</Link>&nbsp;&nbsp;
<Link to="/movie/top250/10">电影</Link>&nbsp;&nbsp;
<Link to="/about">关于</Link> <hr /> {/* Route 创建的标签,就是路由规则,其中 path 表示要匹配的路由,component 表示要展示的组件 */}
{/* 在 vue 中有个 router-view 的路由标签,专门用来放置,匹配到的路由组件的,但是,在 react-router 中,并没有类似于这样的标签,而是 ,直接把 Route 标签,当作的 坑(占位符) */}
{/* Route 具有两种身份:1. 它是一个路由匹配规则; 2. 它是 一个占位符,表示将来匹配到的组件都放到这个位置, 如果想让路由规则,进行精确匹配,可以为 Route,添加 exact 属性,表示启用精确匹配模式 */}
<Route path="/home" component={Home}></Route> <hr /> {/* 注意:默认情况下,路由中的规则,是模糊匹配的,如果 路由可以部分匹配成功,就会展示这个路由对应的组件 */}
{/* 如果要匹配参数,可以在 匹配规则中,使用 : 修饰符,表示这个位置匹配到的是参数 */}
<Route path="/movie/:type/:id" component={Movie} exact></Route> <hr /> <Route path="/about" component={About}></Route>
</div>
</HashRouter>
}
}

其中一个组件

获取路由参数

import React from 'react'

export default class Movie extends React.Component {
constructor(props) {
super(props)
this.state = {
routeParams: props.match.params
}
} render() {
console.log(this);
// 如果想要从路由规则中,提取匹配到的参数,进行使用,可以使用 this.props.match.params.*** 来访问
return <div>
{/* Movie --- {this.props.match.params.type} --- {this.props.match.params.id} */} Movie --- {this.state.routeParams.type} --- {this.state.routeParams.id} </div>
}
}

Ant design

使用在上面的代码有体现

// JS打包入口文件
// 1. 导入包
import React from 'react'
import ReactDOM from 'react-dom' import App from './App.jsx' // 全局导入 Ant Design 的样式表
// 一般,我们使用的 第三方UI组件,它们的样式表文件,都是 以 .css 结尾的,所以,我们最好不要为 .css 后缀名的文件,启用 模块化;
// 我们推荐自己不要直接手写 .css 的文件,而是自己手写 scss 或 less 文件,这样,我们只需要为 scss 文件 或 less 文件启用模块化就好了; // 由于 直接使用 Ant Design 的全部包,体积过大,所以,建议大家使用 按需导入,这样,能减少 bundle.js 文件的体积
// import 'antd/dist/antd.css' // 使用 render 函数渲染 虚拟DOM
ReactDOM.render(<App></App>, document.getElementById('app'))

按需导入配置

.baelrc

{
"presets": ["env", "stage-0", "react"],
"plugins": ["transform-runtime", ["import", { "libraryName": "antd", "style": "css" }]]
}

electron技术

react-路由和Ant design的更多相关文章

  1. React实战之Ant Design—Upload上传_附件上传

    React实战之Ant Design—Upload上传_附件上传 Upload组件大家都在官方文档中看过了,但写的时候还是会遇到许多问题,一些新手看了文档后感觉无从下手,本文过多的简绍就不说了,直接看 ...

  2. React组件库Ant Design的安装与使用

    一.什么是 Ant Design 1.Ant Design 提炼自企业级中后台产品的交互语言和视觉风格 2.Ant Design 使用 TypeScript 构建,提供完整的类型定义文件 二.Ant ...

  3. react 编写 基于ant.design 页面的参考笔记

    前言 因为我没有系统的学习 react,是边写边通过搜索引擎找相对的问题,看 ant.design的 中文文档 编写的一个单页面, 以下的笔记都是写 gksvideourlr 时记录的. 重新设定表单 ...

  4. 【React自制全家桶】一、Webstrom+React+Ant Design+echarts搭建react项目

    前言 一.React是Facebook推出的一个前端框架,之前被用于著名的社交媒体Instagram中,后来由于取得了不错的反响,于是Facebook决定将其开源.出身名门的React也不负众望,成功 ...

  5. Ant Design Pro 脚手架+umiJS 实践总结

    一.简介 1.Ant Design Pro Ant Design Pro是一款搭建中后台管理控制台的脚手架 ,基于React,dva.js,Ant Design (1)其中dva主要是控制数据流向,是 ...

  6. Ant Design(ui框架)

    官方文档:https://ant.design/docs/react/introduce-cn 说明:Ant Design 是一个 ui框架,和 bootstrap 一样是ui框架.里面的组件很完善, ...

  7. React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)

    最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...

  8. 使用express、react、webpack打包、socket.io、mongodb、ant.design、less、es6实现聊天室

    拿到一个项目,我们应该如何去完成这个项目呢. 是直接上手? 还是先进行分析,然后再去解决呢?毫无疑问,如果直接上手解决,那么可能会因为知道目标所在,而导致出现各种问题. 所以,我们应该系统的分析这个项 ...

  9. 使用Facebook的create-react-app脚手架快速构建React开发环境(ant.design,redux......)

    编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等,而src目录中又包含compo ...

  10. button样式篇一(ant Design React)

    这篇来介绍button中elementUi.iview.ant中样式结构 ant Design react ant-react中button分两个文件less: mixins.less:根据butto ...

随机推荐

  1. 杭电-------2042不容易系列之二(C语言写)

    /* 根据题意,知道了最终只剩下了3只羊,应该是从最后一步向前推算,但是因为题意的测试布置一个 可以从只有一个收费站算起,知道本次需要就算的收费站,这样之后有小于此数目的可以直接输出, 大于此数目的也 ...

  2. centos7安装node.js

    安装版本:node-v10.15.3 一.安装必要的编译软件包 # yum install gcc gcc-c++ -y 二.从源码下载Nodejs 进入官网选择自己需要的版本 https://nod ...

  3. docker实战部署Javaweb项目

    一.部署环境说明 docker服务版本:version 18.09.0nginx服务版本:version: nginx/1.15.10redis服务版本:version: redis/5.0.3tom ...

  4. UnsupportedClassVersionError : 不支持的类版本错误

    UnsupportedClassVersionError : 不支持的类版本错误 listenerStart配置类的应用程序侦听器时出错 listenerStart Error configuring ...

  5. C# 获取键盘钩子,屏蔽键盘按键

    static int hHook = 0; public delegate int HookProc(int nCode, int wParam, IntPtr lParam); //LowLevel ...

  6. element-ui 组件 el-calendar 农历显示问题

    一.官方文档:https://element.eleme.cn/#/zh-CN/component/calendar 发现官方并无农历显示的介绍 二.1. 自己写阳历转阴历的方法或引入别人写好的 JS ...

  7. JavaScript 基础学习(一)JavaScript 简介

    定义 JavaScript是基于对象和事件驱动的语言,应用与客户端.其中: 基于对象:提供好了很多对象,可以直接拿过来使用 事件驱动:html做网站静态效果,javascript动态效果(网页能根据客 ...

  8. 如何利用Azure DevOps快速实现自动化构建、测试、打包及部署

    前两天有朋友问我,微软的Azure好用吗,适不适合国人的使用习惯,我就跟他讲了下,Azue很好用,这也是为什么微软云营收一直涨涨涨的原因,基本可以再1个小时内实现自动化构建.打包以及部署到Azure服 ...

  9. mybatis postgresql 批量删除

    一.需求介绍 前端是一个列表页面,列表可以进行复选框的选择,后台进行关联表数据的删除. 二.框架介绍 springboot+mybatis 数据库用的postgresql 三.具体代码(前端js) 1 ...

  10. SpringBoot支持SpringData es

    ElasticSearch CRUD 1.springboot springData es spring data 是spring对数据访问抽象.这些数据可以放入db,index,nosql等包含以下 ...