路由的使用

react-router

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

其中一个组件

获取路由参数

  1. import React from 'react'
  2. export default class Movie extends React.Component {
  3. constructor(props) {
  4. super(props)
  5. this.state = {
  6. routeParams: props.match.params
  7. }
  8. }
  9. render() {
  10. console.log(this);
  11. // 如果想要从路由规则中,提取匹配到的参数,进行使用,可以使用 this.props.match.params.*** 来访问
  12. return <div>
  13. {/* Movie --- {this.props.match.params.type} --- {this.props.match.params.id} */}
  14. Movie --- {this.state.routeParams.type} --- {this.state.routeParams.id}
  15. </div>
  16. }
  17. }

Ant design

使用在上面的代码有体现

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

按需导入配置

.baelrc

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

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. raid知识梳理及其详细介绍

    1 raid级别 生产环境常用到的raid级别有raid0,raid1,raid5,raid10.所以侧重学习这几种raid级别即可. 1.1 raid0条带卷 raid0示意图: raid0特点介绍 ...

  2. Flink1.9重大改进和新功能

    一.Flink1.9.0的里程碑意义 二.重构 Flink WebUI Flink社区讨论了现代化 Flink WebUI 的提案,决定采用 Angular 的最新稳定版来重构这个组件.从Angula ...

  3. HTML连载68-形变中心点、形变中心轴

    一. 形变中心点介绍 <style> ul li { width: 100px; height: 100px; list-style: none; float:left; margin:0 ...

  4. vim配置markdown预览

    注:系统为Centos7,安装了gnome桌面环境. 我的vim装了vimplus工具包,看代码一等一的方便,但是看md的时候还是有些不快乐.于是想找个插件实现markdown的预览. 尝试了几个vi ...

  5. MFC/QT 学习笔记(二)——MFC入门

    MFC以C++形式封装了Windows API //实践 编写MFC需要的头文件#include <afxwin.h> 程序执行流程: 实例化应用程序对象(有且只有一个) 执行程序入口函数 ...

  6. myeclipse 2018 intaslled jars JREs 选项区别,及注意事项

    Standard 1.1.x VM与Standard VM的区别 在Eclipse或MyEclipse中要设置Installed JREs时,有三个选择: - Execution Environmen ...

  7. jQuery---jQuery插件

    jQuery插件 使用插件的步骤 1. 引入jQuery文件 2. 引入插件(如果有用到css的话,需要引入css) 3. 使用插件 <!--1. 引入jquery的js文件--> < ...

  8. linux系统挂载u盘拷贝文件

    linux系统在不能远程的情况下用u盘传文件(比如服务器装上系统还没配IP),需要先将u盘挂载到系统中的某个位置,再使用cp命令拷贝文件,简要步骤如下: 1.把U盘插入Linux电脑,确保U盘指示灯是 ...

  9. 完成:vue-styled-components

    基础 https://es6.ruanyifeng.com/#docs/string#模板字符串 注释:模板字符串返回字符串类型 如果${...}中的值不是字符串,将按照一般的规则转为字符串.比如,大 ...

  10. sqlserver数据库重启

    停止:net stop mssqlserver 重启:net start mssqlserver