Preact-Redux 项目教程
1. 项目的目录结构及介绍
preact-redux/
├── src/
│ ├── index.js
│ ├── actions/
│ ├── reducers/
│ ├── components/
│ └── store/
├── test/
│ ├── index.test.js
│ └── ...
├── .babelrc
├── .eslintignore
├── .eslintrc
├── .gitignore
├── .npmignore
├── .travis.yml
├── LICENSE
├── README.md
├── karma.conf.js
├── package-lock.json
├── package.json
├── rollup.config.js
└── ...
目录结构介绍
src/
: 项目的主要源代码目录,包含应用的主要逻辑。index.js
: 项目的入口文件。actions/
: 存放 Redux 的 action creators。reducers/
: 存放 Redux 的 reducers。components/
: 存放 React 组件。store/
: 存放 Redux store 的配置。
test/
: 存放项目的测试文件。.babelrc
: Babel 配置文件。.eslintignore
: ESLint 忽略配置文件。.eslintrc
: ESLint 配置文件。.gitignore
: Git 忽略配置文件。.npmignore
: NPM 忽略配置文件。.travis.yml
: Travis CI 配置文件。LICENSE
: 项目许可证。README.md
: 项目说明文档。karma.conf.js
: Karma 测试配置文件。package-lock.json
: NPM 锁定依赖版本文件。package.json
: NPM 项目配置文件。rollup.config.js
: Rollup 打包配置文件。
2. 项目的启动文件介绍
src/index.js
import { h, render } from 'preact';
import { Provider } from 'preact-redux';
import store from './store';
import App from './components/App';
render(
<Provider store={store}>
<App />
</Provider>,
document.body
);
- 该文件是项目的入口文件,负责渲染根组件并将其包裹在 Redux 的
Provider
中,以便整个应用可以访问 Redux store。
3. 项目的配置文件介绍
.babelrc
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
- Babel 配置文件,用于转译现代 JavaScript 代码和 JSX 语法。
.eslintrc
{
"extends": ["eslint:recommended", "plugin:react/recommended"],
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"env": {
"browser": true,
"node": true
},
"plugins": ["react"],
"rules": {
// 自定义规则
}
}
- ESLint 配置文件,用于代码风格检查和错误检测。
package.json
{
"name": "preact-redux",
"version": "1.0.0",
"description": "Preact integration for Redux",
"main": "src/index.js",
"scripts": {
"start": "rollup -c rollup.config.js -w",
"build": "rollup -c rollup.config.js",
"test": "karma start karma.conf.js"
},
"dependencies": {
"preact": "^10.0.0",
"preact-redux": "^2.0.0",
"redux": "^4.0.0"
},
"devDependencies": {
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/preset-react": "^7.0.0",
"eslint": "^7.0.
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考