偶然发现在自己项目里的model在加载时,subscriptions里面dispatch的effects里面的网络请求在chrome开发工具里观察会发现请求重复发送了一次(包括用于hmr的websocket也是),排查后发现刷新页面后src/index.js执行了两次。

> dva new test
> cd test
src/index.js:
console.log(123)
npm start
控制台只log一次123

package.json:
{
"private": true,
"scripts": {
"start": "roadhog server",
"build": "roadhog build",
"lint": "eslint --ext .js src test",
"precommit": "npm run lint"
},
"engines": {
"install-node": "6.11.1"
},
"dependencies": {
"babel-runtime": "^6.9.2",
"dva": "^2.0.3",
"react": "^15.4.0",
"react-dom": "^15.4.0"
},
"devDependencies": {
"babel-eslint": "^7.1.1",
"babel-plugin-dva-hmr": "^0.3.2",
"babel-plugin-transform-runtime": "^6.9.0",
"eslint": "^3.12.2",
"eslint-config-airbnb": "^13.0.0",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-jsx-a11y": "^2.2.3",
"eslint-plugin-react": "^6.8.0",
"expect": "^1.20.2",
"husky": "^0.12.0",
"redbox-react": "^1.4.3",
"roadhog": "^1.2.1"
}
}
.roadhogrc:
{
"entry": "src/index.js",
"env": {
"development": {
"extraBabelPlugins": [
"dva-hmr",
"transform-runtime"
]
},
"production": {
"extraBabelPlugins": [
"transform-runtime"
]
}
}
}
src/index.ejs 里删除 css 和 js 的引用,这是个 bug ,已在 dva-cli 最新版里修复。
@sorrycc package/dva-example 里面没有改,话说这个仓库创建pull
request的流程是咋样的:)
Most helpful comment
src/index.ejs 里删除 css 和 js 的引用,这是个 bug ,已在 dva-cli 最新版里修复。