摘要:在上已經(jīng)有接近的數(shù)了,是目前最熱門的前端框架。為了檢驗(yàn)效果當(dāng)然是選擇部署到服務(wù)器。下篇文章將會(huì)介紹利用的鏡像部署應(yīng)用。完整項(xiàng)目代碼地址
React在Github上已經(jīng)有接近70000的 star 數(shù)了,是目前最熱門的前端框架。而我學(xué)習(xí)React也有一段時(shí)間了,現(xiàn)在就開始用 React+Redux 進(jìn)行實(shí)戰(zhàn)!
上回說到使用Redux-saga 管理 Redux 應(yīng)用異步操作,應(yīng)用還是只有一個(gè)首頁(yè).現(xiàn)在開始構(gòu)建一個(gè)新的投稿頁(yè)面并使用 React-Router 進(jìn)行路由管理.
React 實(shí)踐項(xiàng)目 (一)
React 實(shí)踐項(xiàng)目 (二)
React 實(shí)踐項(xiàng)目 (三)
React 實(shí)踐項(xiàng)目 (四)
創(chuàng)建 src/containers/SubmitEntry.js
/** * Created by Yuicon on 2017/7/13. * https://github.com/Yuicon */ import React, {Component} from "react"; import {Button, Form, Input, Switch, Notification} from "element-react"; import {connect} from "react-redux"; import {createEntryAction} from "../../redux/action/entries"; import "./SubmitEntry.css"; @connect( (state) => { return ({ entries: state.entries, }); }, {createEntryAction: createEntryAction} ) export default class SubmitEntry extends Component { constructor(props) { super(props); this.state = { form: { title: "", content: "", original: true, originalUrl: null, english: false, type: "article", }, loading: false, }; } componentWillReceiveProps(nextProps) { if (nextProps.entries.get("saveSuccess")) { Notification.success({ title: "成功", message: "投稿成功", duration: 1500 }); this.setState({form: { title: "", content: "", original: true, originalUrl: null, english: false, type: "article", }}); } else if (nextProps.entries.get("error")) { Notification.error({ title: "錯(cuò)誤", message: nextProps.entries.get("error"), type: "success", duration: 1500 }); } this.setState({loading: false}); } handleSubmit = () => { this.props.createEntryAction(this.state.form); this.setState({loading: true}); }; handleChange = (key, value) => { this.setState({ user: Object.assign(this.state.form, {[key]: value}) }); }; render(){ return() } }推薦文章到掘金
感謝分享,文章的審核時(shí)間約1-2個(gè)工作日
相關(guān)的Redux部分已經(jīng)講過.就不重復(fù)介紹了,感興趣的可以查看示例代碼
頁(yè)面創(chuàng)建好了,開始使用 React-Router 管理路由
首先是添加依賴
編輯 package.json
// react-router-dom 包含 react-router "react-router-dom": "^4.1.1",
編輯 App.js
/** * Created by Yuicon on 2017/6/25. */ import React, { Component } from "react"; import {BrowserRouter as Router,Route} from "react-router-dom" import "./App.css"; import Index from "../Index/Index"; import Header from "../Header/Header"; import SubmitEntry from "../SubmitEntry/SubmitEntry"; export default class App extends Component { render(){ return() } }
Router:
Router 一共有三種,我們采用的是常用的 browserHistory
browserHistory h5的history
hashHistory 老版本瀏覽器的history
memoryHistory node環(huán)境下的history,存儲(chǔ)在memory中
Route :
每個(gè) Route 標(biāo)簽都對(duì)應(yīng)一個(gè)UI頁(yè)面,它的職責(zé)就是當(dāng)頁(yè)面的訪問地址與 Route 上的 path 匹配時(shí),就渲染出對(duì)應(yīng)的 UI 界面。
而
exact :
Route 上的 exact props 表示采用嚴(yán)格匹配,頁(yè)面的訪問地址與 Route 上的 path 必須一樣
history:
常用方法
push(path, [state]) 在歷史堆棧信息里加入一個(gè)新條目。
常用于頁(yè)面跳轉(zhuǎn),如: this.props.history.push("/"); 跳轉(zhuǎn)至首頁(yè)
replace(path, [state]) 在歷史堆棧信息里替換掉當(dāng)前的條目
與 push 的區(qū)別是無法通過歷史堆棧返回跳轉(zhuǎn)前的頁(yè)面
goBack() 等同于瀏覽器的后退鍵
match:
match 對(duì)象包含了 Route 如何與 URL 匹配的信息,具有以下屬性:
params: object 路徑參數(shù),通過解析 URL 中的動(dòng)態(tài)部分獲得鍵值對(duì)
isExact: bool 為 true 時(shí),整個(gè) URL 都需要匹配
path: string 用來匹配的路徑模式,用于創(chuàng)建嵌套的
url: string URL 匹配的部分,用于嵌套的
常用于獲取路徑中的參數(shù)
有這樣一個(gè)路由
在 Child 中可以這樣獲取到 id 參數(shù) this.props.match.params.id
結(jié)語(yǔ)
現(xiàn)在我們得到了一個(gè)可以見人的應(yīng)用了,剩下的大部分是一些業(yè)務(wù)代碼。為了檢驗(yàn)效果當(dāng)然是選擇部署到服務(wù)器。下篇文章將會(huì)介紹利用 nginx 的 docker 鏡像部署 React 應(yīng)用。
完整項(xiàng)目代碼地址:https://github.com/DigAg/diga...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84249.html
摘要:在上已經(jīng)有接近的數(shù)了,是目前最熱門的前端框架。將整個(gè)應(yīng)用打包發(fā)布,自動(dòng)試用進(jìn)行壓縮與優(yōu)化。毫無疑問,這些重?fù)?dān)都將壓在企業(yè)開發(fā)人員身上團(tuán)隊(duì)之間如何高效協(xié)調(diào),快速交付產(chǎn)品,快速部署應(yīng)用,以及滿足企業(yè)業(yè)務(wù)需求,是開發(fā)人員亟需解決的問題。 React在Github上已經(jīng)有接近70000的 star 數(shù)了,是目前最熱門的前端框架。而我學(xué)習(xí)React也有一段時(shí)間了,現(xiàn)在就開始用 React+Red...
摘要:在上已經(jīng)有接近的數(shù)了,是目前最熱門的前端框架。將整個(gè)應(yīng)用打包發(fā)布,自動(dòng)試用進(jìn)行壓縮與優(yōu)化。毫無疑問,這些重?fù)?dān)都將壓在企業(yè)開發(fā)人員身上團(tuán)隊(duì)之間如何高效協(xié)調(diào),快速交付產(chǎn)品,快速部署應(yīng)用,以及滿足企業(yè)業(yè)務(wù)需求,是開發(fā)人員亟需解決的問題。 React在Github上已經(jīng)有接近70000的 star 數(shù)了,是目前最熱門的前端框架。而我學(xué)習(xí)React也有一段時(shí)間了,現(xiàn)在就開始用 React+Red...
摘要:在上已經(jīng)有接近的數(shù)了,是目前最熱門的前端框架。將整個(gè)應(yīng)用打包發(fā)布,自動(dòng)試用進(jìn)行壓縮與優(yōu)化。毫無疑問,這些重?fù)?dān)都將壓在企業(yè)開發(fā)人員身上團(tuán)隊(duì)之間如何高效協(xié)調(diào),快速交付產(chǎn)品,快速部署應(yīng)用,以及滿足企業(yè)業(yè)務(wù)需求,是開發(fā)人員亟需解決的問題。 React在Github上已經(jīng)有接近70000的 star 數(shù)了,是目前最熱門的前端框架。而我學(xué)習(xí)React也有一段時(shí)間了,現(xiàn)在就開始用 React+Red...
摘要:利用中間件實(shí)現(xiàn)異步請(qǐng)求,實(shí)現(xiàn)兩個(gè)用戶角色實(shí)時(shí)通信。目前還未深入了解的一些概念。往后會(huì)寫更多的前后臺(tái)聯(lián)通的項(xiàng)目。刪除分組會(huì)連同組內(nèi)的所有圖片一起刪除。算是對(duì)自己上次用寫后臺(tái)的一個(gè)強(qiáng)化,項(xiàng)目文章在這里。后來一直沒動(dòng),前些日子才把后續(xù)的完善。 歡迎訪問我的個(gè)人網(wǎng)站:http://www.neroht.com/? 剛學(xué)vue和react時(shí),利用業(yè)余時(shí)間寫的關(guān)于這兩個(gè)框架的訓(xùn)練,都相對(duì)簡(jiǎn)單,有的...
摘要:本次舉辦的第二屆京東技術(shù)節(jié),由高峰論壇專題演講兩個(gè)部分組成,內(nèi)容涵蓋人工智能與業(yè)務(wù)應(yīng)用京東云的開放之路大數(shù)據(jù)技術(shù)與應(yīng)用移動(dòng)開發(fā)實(shí)踐信息安全金融科技大促備戰(zhàn)解密電商之架構(gòu)升級(jí)與優(yōu)化前端技術(shù)實(shí)踐研發(fā)工具與實(shí)踐研發(fā)團(tuán)隊(duì)建設(shè)與工程文化共個(gè)專題。 本文首發(fā)于微信公眾號(hào):前端工坊 轉(zhuǎn)載請(qǐng)聯(lián)系前端工坊編輯授權(quán); 歡迎關(guān)注有趣好玩的前端技術(shù)公眾號(hào):前端工坊 項(xiàng)目簡(jiǎn)介 showImg(https://...
閱讀 1367·2021-11-15 11:45
閱讀 3134·2021-09-27 13:36
閱讀 2878·2019-08-30 15:54
閱讀 995·2019-08-29 12:38
閱讀 2915·2019-08-29 11:22
閱讀 2996·2019-08-26 13:52
閱讀 2042·2019-08-26 13:30
閱讀 595·2019-08-26 10:37