1、用戶不管從什么界面進入,都需要獲取用戶信息和微信分享的功能
2、如果用戶已經(jīng)獲取某一個信息,將不再調(diào)到該信息的請求接口
react項目,微信公眾號
index.js入口文件
ReactDOM.render(
<Provider store={store}>
<Route />
</Provider>
,
document.getElementById('root'));
registerServiceWorker();
router/index.js
export const routes = [{
path: '/x',
component: () => import('../xx')
}, {
path: '/xx',
component: () => import('../xx')
},
...
]
const router = (props) => (
<BrowserRouter>
<Switch>
<Route exact path="/" render={() => <Redirect to="/invite" />} />
{routes.map(({ path, title, component }, index) => (
<Route
key={index}
exact
path={path}
onEnter={() => { document.title = title }}
component={AsyncComponent(component)}
/>
))}
</Switch>
</BrowserRouter>
)
Home.js 首頁
componentDidMount() {
const { dispatch } = this.props
get(url).then(data => {
if (!data) {
window.location.href = 'xxx'
} else {
dispatch({
type: xxx,
openid: xxx
avatar: xxx,
name: xxx
})
post(url, params).then(data => {
if(!data){
this.props.history.push('/');
return false;
}
window.wx.config({
debug: true,
appId: data.appId,
timestamp: data.timestamp,
nonceStr: data.nonceStr,
signature: data.signature,
jsApiList: data.jsApiList
});
window.wx.ready(function () {
// 分享至朋友圈
window.wx.onMenuShareTimeline(shareData);
});
...
})
}
})
}
目前我是將獲取用戶信息和微信分享的配置都寫在首頁,但是發(fā)現(xiàn)當(dāng)用戶從地址欄輸入其他地址(或在其他路由界面中進行刷新),比如http://xx.com/a這個路由進入(刷新)的時候,獲取不到用戶信息和微信的配置信息
我想不管用戶從哪個界面進入或者刷新,都能獲取到用戶的信息和微信的配置信息
【問題】:
1、將home.js中componentDidMount的js寫在哪才能規(guī)避這個問題?有沒有其他的解決辦法?
2、目前我是將home.js中的componentDidMount的js寫在了router/index.js中,這種方法在公司正式項目中常見嗎?
剛接觸React不久,還請大神們給點思路,謝謝了
單獨寫一個身份驗證的組件,任何地址都會路由到這個組件,這個組件的componentDidMount
中進行身份驗證,但是組件不會渲染任何視圖
render () {
return null
}
路由就應(yīng)該這樣寫
<BrowserRouter>
<AuthRoute/>
<Switch>
<Route exact path="/" render={() => <Redirect to="/invite" />} />
{routes.map(({ path, title, component }, index) => (
<Route
key={index}
exact
path={path}
onEnter={() => { document.title = title }}
component={AsyncComponent(component)}
/>
))}
</Switch>
</BrowserRouter>
<AuthRoute/>
是身份驗證的組件
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。