全部源代碼、文檔和圖片都在 github 的倉庫裏,點擊進入倉庫javascript
Search engine optimization
// src/client/Home/index.js import {Helmet} from 'react-helmet'; class Home extends Component { render() { return ( <> <Helmet> <title>hello, Home</title> <meta name="描述" content="這是 Home 頁面" /> </Helmet> <div className={styles.wrapper}> </div> </> ); } }
// src/client/News/index.js import { Helmet } from 'react-helmet'; class News extends Component { render() { return ( <> <Helmet> <title>hello, News</title> <meta name="描述" content="這是 News 頁面" /> </Helmet> <div> <h1>News Page</h1> </div> </> ); } }
// src/server/render.js import { Helmet } from 'react-helmet'; export default (req, res) => { Promise.all(promises).then(() => { const helmet = Helmet.renderStatic(); let html = ` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <link href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"> ${helmet.title.toString()} ${helmet.meta.toString()} <style>${cssStr}</style> </head> <body> <div id="root">${domContent}</div> <script> window.context = { state: ${JSON.stringify(store.getState())} } </script> <script src="/client.js"></script> </body> </html> `; res.send(html); }); };