国际化官网vue
|-- .next |-- components --------------- 组件 |-- lang --------------------- 多语言 |-- pages -------------------- 页面 |-- scripts ------------------ 脚本文件 |-- static ------------------- 静态资源 |-- utils -------------------- 自定义或其余库以及封装文件 |-- .babelrc |-- .eslintignore |-- .eslintrc |-- .gitignore |-- .prettierrc |-- next.config.js |-- package.json |-- prettier.config.js |-- README.md |-- server.js |-- yarn.lock
多语言:react-intl样式:起初使用的是 jss,后来改为了引入外部样式文件react
http 请求:data-fetchgit
UI 库:antd-design-lessgithub
路由:withRouterexpress
全部示例均参考自 next 官方json
痛点:babel
- 国际化语言切换
- 自定义字体不生效
- 样式使用 import 引入到对应 jsx 文件,发布到生产环境以后样式不立马生效
- antd-design 表单样式发布到生产环境同上
在 next.config.js 文件中增长用户自定义样式配置代码antd
const themeVariables = lessToJS(fs.readFileSync(path.resolve(__dirname, './static/style/antd-custom.less'), 'utf8'));
不在单个文件中引入相应的样式文件,而是把样式文件都在用户自定义样式文件先引入less
在 .babelrc 文件将 antd 库做为插件(plugins)引入,在 static 文件夹下新建 style 文件夹(存放样式文件),新建 index.less 文件,在文件中引入 antd 样式frontend
@import '~antd/dist/antd.less';
获取当前 URL 参数:在钩子 componentDidMount 里面获取
``` componentDidMount() { const search = window.location.search; console.log(search); // 获取 url ? 后带的参数 } ```
不要自定义静态文件夹的名字,只能叫 static ,由于只有这个名字 Next.js 才会把它看成静态资源。(出自文档: next文档)
看过那么多别人写的 react 项目,这是第一个本身上手的实战项目,还用到了 next.js 作服务端渲染。虽然项目很简单,几乎纯展现,难度系数较低,但对于 react 入门级小白而言,第一次参与 react 实战,仍是从零到一本身搭建(固然,期间有大佬相助),仍是能有所收获。
由于以前写 vue 项目的时候学到了该如何的划分组件,怎么定义组件,因此对于页面和组件拆分几乎没有问题。这次实战,对 jsx 语法有了更进一步的了解,可是对 react 的生命周期还不是很了解,至少没有在这次项目中体现。对于组件间的传值,会用大于理解。对于 react 高阶组件,有待深刻体验。