返回
手把手带你用next搭建一个react服务端渲染项目
前端
2024-02-22 11:52:00
一、项目搭建
- 安装Next.js
npm install -g next
- 创建项目
mkdir next-project
cd next-project
next init
- 安装依赖
npm install --save antd react-redux redux next-redux-wrapper sass
- 创建项目结构
├── pages
│ ├── index.js
│ ├── about.js
│ ├── contact.js
│ └── 404.js
├── components
│ ├── Header.js
│ ├── Footer.js
│ ├── Layout.js
│ └── Home.js
├── styles
│ ├── main.scss
│ ├── antd.scss
│ ├── variables.scss
│ ├── mixins.scss
│ └── reset.scss
├── store
│ ├── index.js
│ ├── actions.js
│ └── reducers.js
└── package.json
- 配置Next.js
在next.config.js
文件中添加以下配置:
module.exports = {
webpack: (config, { isServer }) => {
if (!isServer) {
config.resolve.alias['@components'] = path.resolve(__dirname, './components')
config.resolve.alias['@styles'] = path.resolve(__dirname, './styles')
config.resolve.alias['@store'] = path.resolve(__dirname, './store')
}
return config
}
}
二、集成antd
- 在
package.json
文件中添加以下依赖:
"antd": "^4.13.2"
- 在
styles/antd.scss
文件中添加以下代码:
@import '~antd/dist/antd.min.css';
- 在
components/Header.js
文件中添加以下代码:
import { Layout, Menu } from 'antd';
- 在
components/Layout.js
文件中添加以下代码:
import { Header, Footer } from './components'
- 在
pages/index.js
文件中添加以下代码:
import Layout from '../components/Layout'
三、集成redux
- 在
store/index.js
文件中添加以下代码:
import { createStore, applyMiddleware } from 'redux'
import { Provider } from 'react-redux'
import reducer from './reducers'
import thunkMiddleware from 'redux-thunk'
import { composeWithDevTools } from 'redux-devtools-extension'
const store = createStore(reducer, composeWithDevTools(applyMiddleware(thunkMiddleware)))
export default store
- 在
components/Layout.js
文件中添加以下代码:
import { Provider } from 'react-redux'
import store from '../store'
- 在
pages/index.js
文件中添加以下代码:
import { Provider } from 'react-redux'
import store from '../store'
四、集成样式解决方案
- 在
styles/main.scss
文件中添加以下代码:
@import '~antd/dist/antd.min.css';
@import './antd.scss';
@import './variables.scss';
@import './mixins.scss';
@import './reset.scss';
- 在
pages/index.js
文件中添加以下代码:
import '../styles/main.scss'
五、运行项目
npm run dev
六、总结
通过本文,我们详细介绍了如何使用Next.js搭建一个完善的React服务端渲染项目,包括集成antd、redux和样式解决方案。同时,还提供了一个完整的项目结构和详细的配置步骤,帮助开发者快速上手Next.js。