react-routerjavascript
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> <Link to="/movie/top250/10">电影</Link> <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> } }
获取路由参数css
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> } }
使用在上面的代码有体现vue
// 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'))
.baelrcjava
{ "presets": ["env", "stage-0", "react"], "plugins": ["transform-runtime", ["import", { "libraryName": "antd", "style": "css" }]] }
electron技术react