react-router使用教程
關于url中#的作用:
學習: http://www.ruanyifeng.com/blo...
"#"代表網頁中的一個位置。其右面的字符,就是該位置的標識符
改變#不觸發網頁重載
改變#會改變瀏覽器的訪問歷史
window.location.hash讀取#值
window.onhashchange = func 監聽hash改變
reat-router
github主頁: https://github.com/ReactTrain...
官網教程: https://github.com/reactjs/re...官方教程)
一峰教程: http://www.ruanyifeng.com/blo...
react-router庫中的 相關組件
包含的相關組件:
Router: 路由器組件, 用來包含各個路由組件,用來管理路由
Route: 路由組件, 注冊路由
IndexRoute: 默認路由組件
hashHistory: 路由的切換由URL的hash變化決定,即URL的#部分發生變化
Link: 路由鏈接組件,生成a標簽的
Router: 路由器組件
屬性: history={hashHistory} 用來監聽瀏覽器地址欄的變化, 并將URL解析成一個地址對象,供React Router匹配
子組件: Route
Route: 路由組件
屬性1: path="/xxx"
屬性2: component={Xxx}
根路由組件: path="/"的組件, 一般為App
子路由組件: 子
IndexRoute: 默認路由
當父路由被請求時, 默認就會請求此路由組件
hashHistory
用于Router組件的history屬性
作用: 為地址url生成?_k=hash, 用于內部保存對應的state
Link: 路由鏈接
屬性1: to="/xxx"
屬性2: activeClassName="active"
下載相關插件:
npm install react-router@3 --save
編碼
定義各個路由組件
About.js
import React from "react" function About() { returnAbout組件內容} export default About
Home.js
import React from "react" function Home() { returnHome組件內容2} export default Home
Repos.js
import React, {Component} from "react" import {Link} from "react-router"; export default class Repos extends Component { constructor(props){ super(props); this.state = { repos : [] } } componentDidMount(){ let repos = [ {name : "facebook", repo : "yarn"}, {name : "facebook", repo : "react"}, {name : "google", repo : "angular"}, {name : "antd", repo : "antd"}, ]; this.setState({repos}); } render() { return () } }Repos 組件
{ this.state.repos.map((item, index) => { return
{this.props.children}- {item.repo}
}) }
定義應用組件: App.js
import React from "react"; import {Link} from "react-router" class App extends React.Component{ render(){ return () } } export default App;Hello, React Router!
{this.props.children}
- about
- repos
定義入口JS: index.js-->渲染組件
import React from "react"; import ReactDOM from "react-dom"; import {Router, Route, hashHistory, IndexRoute} from "react-router"; import App from "./components/App/App"; import About from "./components/About/About"; import Repos from "./components/Repos/Repos"; import Home from "./components/Home/Home"; import Repo from "./components/Repo/Repo"; ReactDOM.render( (), document.getElementById("root") );
主頁面: index.html
傳遞請求參數
repo.js: repos組件下的分路由組件
import React from "react"; function Repo({params}) { return用戶名:{params.name}, 倉庫名:{params.repo}
} export default Repo;
repos.js
import React, {Component} from "react" import {Link} from "react-router"; export default class Repos extends Component { constructor(props){ super(props); this.state = { repos : [] } } componentDidMount(){ let repos = [ {name : "facebook", repo : "yarn"}, {name : "facebook", repo : "react"}, {name : "google", repo : "angular"}, {name : "antd", repo : "antd"}, ]; this.setState({repos}); } render() { return () } }Repos 組件
{ this.state.repos.map((item, index) => { return
{this.props.children}- {item.repo}
}) }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84422.html
摘要:它是官方維護的,事實上也是唯一可選的路由庫。表示的這個部分是可選的。另一種做法是,使用指定當前路由的。而組件會使用路徑的精確匹配。否則用戶直接向服務器請求某個子路由,會顯示網頁找不到的錯誤。 真正學會 React 是一個漫長的過程。 你會發現,它不是一個庫,也不是一個框架,而是一個龐大的體系。想要發揮它的威力,整個技術棧都要配合它改造。你要學習一整套解決方案,從后端到前端,都是全新的做...
摘要:項目地址基于和的前端腳手架。目錄前言特性環境開始工程結構開發調試單元測試靜態部署相關文檔致謝前言如果你是一個初學者,這個項目可以是很好的教程。單元測試新增一個單元測試,你只需在中創建文件。在腳手架中用于擴展服務和代理。 項目地址: https://github.com/YutHelloWo... 基于React、Redux、React-Router@3.x、webpack和reacts...
稍微整理了一下自己平時看到的前端學習資源,分享給大家。 html MDN:Mozilla開發者網絡 SEO:前端開發中的SEO css 張鑫旭:張鑫旭的博客 css精靈圖:css精靈圖實踐 柵格系統:詳解CSS中的柵格系統 媒體查詢:css媒體查詢用法 rem布局:手機端頁面自適應布局 移動前端開發之viewport的深入理解:深入理解viewport 淘寶前端布局:手機淘寶移動端布局 fl...
摘要:而函數式編程就不一樣了,這是模仿我們人類的思維方式發明出來的。數據流在中,數據的流動是單向的,即從父節點傳遞到子節點。數據流嚴格的單向數據流是架構的設計核心。 前言 總括: 本文采用react+redux+react-router+less+es6+webpack,以實現一個簡易備忘錄(todolist)為例盡可能全面的講述使用react全家桶實現一個完整應用的過程。 代碼地址:Re...
摘要:該手冊是基于和使用教程學習編寫而成,可能會有描述不夠清楚的地方,大家可自行參考原文,為提供了一個完整的路由庫,它允許你通過的變化來控制組件的切換與變化有關全家桶的其余相關文章,可以查看以下鏈接,會持續更新別眨眼看安裝使用進行安裝之后 該手冊是基于react-router 和 React Router 使用教程 學習編寫而成,可能會有描述不夠清楚的地方,大家可自行參考原文, React ...
閱讀 2009·2021-11-24 09:39
閱讀 1878·2019-08-30 15:55
閱讀 2168·2019-08-30 15:53
閱讀 565·2019-08-29 13:16
閱讀 984·2019-08-26 12:20
閱讀 2379·2019-08-26 11:58
閱讀 3129·2019-08-26 10:19
閱讀 3296·2019-08-23 18:31