{"_id":"@beisen/CommonMount","_rev":"8-e998e3e2da47298e0ac64fa0e55e6745","name":"@beisen/CommonMount","description":"### 挂载公共方法 - 组件构造函数中创建挂载容器","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.1":{"name":"@beisen/CommonMount","version":"0.0.1","description":"### 挂载公共方法 - 组件构造函数中创建挂载容器","main":"lib/index.js","_storybook":{"default_example":"man/index.js"},"scripts":{"build":"npm run build:lib && npm run build:umd && npm run build:story && gulp && gulp fix","build:lib":"babel src --out-dir lib","build:umd":"webpack src/index.js dist/index.js --config webpack.config.js","build:story":"babel story --out-dir man","test":"karma start","dev":"webpack-dev-server --progress --colors --config webpack.dev.config.js","renew":"git checkout-index -f -a --prefix=../$name/ && cp ./.gitignore ../$name"},"keywords":["beisen","react-component","es6","karma","jasmine"],"repository":{"type":"git","url":"git@gitlab.beisen.co:cnpm/CommonMount.git"},"author":{"name":"caoshanmin","email":"caoshanmin@beisen.com"},"maintainers":[{"name":"caoshanmin","email":"caoshanmin@beisen.com"}],"license":"ISC","dependencies":{"debounce":"^1.0.0","react":"^0.14.6","react-dom":"^0.14.6"},"devDependencies":{"babel":"^6.5.2","babel-cli":"^6.6.5","babel-core":"^6.7.2","babel-eslint":"^4.1.3","babel-loader":"^6.2.4","babel-preset-airbnb":"^1.0.1","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.3.13","babel-preset-stage-0":"^6.5.0","case-sensitive-paths-webpack-plugin":"^1.0.1","css-loader":"^0.23.1","enzyme":"^2.0.0","file-loader":"^0.8.5","gulp":"^3.9.1","gulp-concat":"^2.6.0","gulp-insert":"^0.5.0","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-sass":"^2.3.2","jasmine-core":"^2.4.1","json-loader":"^0.5.4","karma":"^0.13.19","karma-babel-preprocessor":"^6.0.1","karma-chrome-launcher":"^0.2.2","karma-jasmine":"^0.3.7","karma-webpack":"^1.7.0","node-sass":"^3.4.2","react-addons-test-utils":"^0.14.7","sass-loader":"^3.2.0","style-loader":"^0.13.0","url-loader":"^0.5.7","webpack":"^1.12.10","webpack-dev-server":"^1.14.0"},"gitHead":"8d0642b02cc8038fe18bce0bcc22ad9695b3a120","_id":"@beisen/CommonMount@0.0.1","_shasum":"95d7978d3e096bb82f6e77c052ce7665a688c1ed","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"beisen","email":"ci@beisen.com"},"dist":{"shasum":"95d7978d3e096bb82f6e77c052ce7665a688c1ed","tarball":"https://registry.npmjs.org/@beisen/CommonMount/-/CommonMount-0.0.1.tgz","integrity":"sha512-UtMphnYlUk+DxXQan0YpKyhE4qaeTTj7rgEE0+nEznAkc0GF/8O7qHONZCy3zVWN3IyKl9rBM3lq/5Ym+gNQkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEM7nxysMdAyyQr19R5H652B+OZNDaKw8UGe2yw/2VZ0AiEA1Y1TErVGRKjy6pk6Bd2YXXvwSb1rAToJ2VDTh/4ZhJM="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/CommonMount-0.0.1.tgz_1479953774319_0.9901679323520511"}},"0.0.2":{"name":"@beisen/CommonMount","version":"0.0.2","description":"### 挂载公共方法 - 组件构造函数中创建挂载容器","main":"lib/index.js","_storybook":{"default_example":"man/index.js"},"scripts":{"build":"npm run build:lib && npm run build:umd && npm run build:story && gulp && gulp fix","build:lib":"babel src --out-dir lib","build:umd":"webpack src/index.js dist/index.js --config webpack.config.js","build:story":"babel story --out-dir man","test":"karma start","dev":"webpack-dev-server --progress --colors --config webpack.dev.config.js","renew":"git checkout-index -f -a --prefix=../$name/ && cp ./.gitignore ../$name"},"keywords":["beisen","react-component","es6","karma","jasmine"],"repository":{"type":"git","url":"git@gitlab.beisen.co:cnpm/CommonMount.git"},"author":{"name":"caoshanmin","email":"caoshanmin@beisen.com"},"maintainers":[{"name":"beisen","email":"ci@beisen.com"}],"license":"ISC","dependencies":{"debounce":"^1.0.0","react":"^0.14.6","react-dom":"^0.14.6"},"devDependencies":{"babel":"^6.5.2","babel-cli":"^6.6.5","babel-core":"^6.7.2","babel-eslint":"^4.1.3","babel-loader":"^6.2.4","babel-preset-airbnb":"^1.0.1","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.3.13","babel-preset-stage-0":"^6.5.0","case-sensitive-paths-webpack-plugin":"^1.0.1","css-loader":"^0.23.1","enzyme":"^2.0.0","file-loader":"^0.8.5","gulp":"^3.9.1","gulp-concat":"^2.6.0","gulp-insert":"^0.5.0","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-sass":"^2.3.2","jasmine-core":"^2.4.1","json-loader":"^0.5.4","karma":"^0.13.19","karma-babel-preprocessor":"^6.0.1","karma-chrome-launcher":"^0.2.2","karma-jasmine":"^0.3.7","karma-webpack":"^1.7.0","node-sass":"^3.4.2","react-addons-test-utils":"^0.14.7","sass-loader":"^3.2.0","style-loader":"^0.13.0","url-loader":"^0.5.7","webpack":"^1.12.10","webpack-dev-server":"^1.14.0"},"gitHead":"f6c9a2606833a4094b7d67b6a4c210296eb28f27","_id":"@beisen/CommonMount@0.0.2","_shasum":"46ded950b515ca18987e3aa4fcf5a067faa35e2d","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"beisen","email":"ci@beisen.com"},"dist":{"shasum":"46ded950b515ca18987e3aa4fcf5a067faa35e2d","tarball":"https://registry.npmjs.org/@beisen/CommonMount/-/CommonMount-0.0.2.tgz","integrity":"sha512-6VoUGCBhLaIUUKWicKCETbaNd76ZZ8SnDe2PdT/jur33Ijyl1uB7nkMuQ2if0SdWiVW3pH/7/737SCkLkj8gtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDT2XEKWEYTV1X4fP7zIxeqha6WzhaOAYcrnvIfRptFPgIgVXWAjSdYAdv6JPrF5NrmFal+cwL8AHvJLZj7gmvXqaw="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/CommonMount-0.0.2.tgz_1482998321772_0.33403930230997503"}},"0.0.3":{"name":"@beisen/CommonMount","version":"0.0.3","description":"### 挂载公共方法 - 组件构造函数中创建挂载容器","main":"lib/index.js","_storybook":{"default_example":"man/index.js"},"scripts":{"build":"npm run build:lib && npm run build:umd && npm run build:story && gulp && gulp fix","build:lib":"babel src --out-dir lib","build:umd":"webpack src/index.js dist/index.js --config webpack.config.js","build:story":"babel story --out-dir man","test":"karma start","dev":"webpack-dev-server --progress --colors --config webpack.dev.config.js","renew":"git checkout-index -f -a --prefix=../$name/ && cp ./.gitignore ../$name"},"keywords":["beisen","react-component","es6","karma","jasmine"],"repository":{"type":"git","url":"git@gitlab.beisen.co:cnpm/CommonMount.git"},"author":{"name":"caoshanmin","email":"caoshanmin@beisen.com"},"maintainers":[{"name":"beisen","email":"ci@beisen.com"}],"license":"ISC","dependencies":{"debounce":"^1.0.0","react":"^0.14.6","react-dom":"^0.14.6"},"devDependencies":{"babel":"^6.5.2","babel-cli":"^6.6.5","babel-core":"^6.7.2","babel-eslint":"^4.1.3","babel-loader":"^6.2.4","babel-preset-airbnb":"^1.0.1","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.3.13","babel-preset-stage-0":"^6.5.0","case-sensitive-paths-webpack-plugin":"^1.0.1","css-loader":"^0.23.1","enzyme":"^2.0.0","file-loader":"^0.8.5","gulp":"^3.9.1","gulp-concat":"^2.6.0","gulp-insert":"^0.5.0","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-sass":"^2.3.2","jasmine-core":"^2.4.1","json-loader":"^0.5.4","karma":"^0.13.19","karma-babel-preprocessor":"^6.0.1","karma-chrome-launcher":"^0.2.2","karma-jasmine":"^0.3.7","karma-webpack":"^1.7.0","node-sass":"^3.4.2","react-addons-test-utils":"^0.14.7","sass-loader":"^3.2.0","style-loader":"^0.13.0","url-loader":"^0.5.7","webpack":"^1.12.10","webpack-dev-server":"^1.14.0"},"gitHead":"1b95a7a0a92424e8aa6170f098d5522ea39b74fe","_id":"@beisen/CommonMount@0.0.3","_shasum":"c8482c00f3cebfb1ad045cf32bb0245ed1c4b6a1","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"beisen","email":"ci@beisen.com"},"dist":{"shasum":"c8482c00f3cebfb1ad045cf32bb0245ed1c4b6a1","tarball":"https://registry.npmjs.org/@beisen/CommonMount/-/CommonMount-0.0.3.tgz","integrity":"sha512-AIfekFJSWg4ILR9l1vZ0ivhINrfIekatLYZKY7xwlLITN9I1fwNjF9Kl2o4VUysiV/xP8WKDNd0flsxSDvJz0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4ADIsFwORJNYbhv7sUcHCGoMk2+fGKHwYqqrbiCusXgIhAJ8NTig6hLGXTm8bHsq7hahHZ07QQVB4oOISmhCkGgZn"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/CommonMount-0.0.3.tgz_1483423793740_0.27977318363264203"}},"0.0.4":{"name":"@beisen/CommonMount","version":"0.0.4","description":"### 挂载公共方法 - 组件构造函数中创建挂载容器","main":"lib/index.js","_storybook":{"default_example":"man/index.js"},"scripts":{"build":"npm run build:lib && npm run build:umd && npm run build:story && gulp && gulp fix","build:lib":"babel src --out-dir lib","build:umd":"webpack src/index.js dist/index.js --config webpack.config.js","build:story":"babel story --out-dir man","test":"karma start","dev":"webpack-dev-server --progress --colors --config webpack.dev.config.js","renew":"git checkout-index -f -a --prefix=../$name/ && cp ./.gitignore ../$name"},"keywords":["beisen","react-component","es6","karma","jasmine"],"repository":{"type":"git","url":"git@gitlab.beisen.co:cnpm/CommonMount.git"},"author":{"name":"caoshanmin","email":"caoshanmin@beisen.com"},"maintainers":[{"name":"beisen","email":"ci@beisen.com"}],"license":"ISC","dependencies":{"debounce":"^1.0.0","react":"^0.14.6","react-dom":"^0.14.6"},"devDependencies":{"babel":"^6.5.2","babel-cli":"^6.6.5","babel-core":"^6.7.2","babel-eslint":"^4.1.3","babel-loader":"^6.2.4","babel-preset-airbnb":"^1.0.1","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.3.13","babel-preset-stage-0":"^6.5.0","case-sensitive-paths-webpack-plugin":"^1.0.1","css-loader":"^0.23.1","enzyme":"^2.0.0","file-loader":"^0.8.5","gulp":"^3.9.1","gulp-concat":"^2.6.0","gulp-insert":"^0.5.0","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-sass":"^2.3.2","jasmine-core":"^2.4.1","json-loader":"^0.5.4","karma":"^0.13.19","karma-babel-preprocessor":"^6.0.1","karma-chrome-launcher":"^0.2.2","karma-jasmine":"^0.3.7","karma-webpack":"^1.7.0","node-sass":"^3.4.2","react-addons-test-utils":"^0.14.7","sass-loader":"^3.2.0","style-loader":"^0.13.0","url-loader":"^0.5.7","webpack":"^1.12.10","webpack-dev-server":"^1.14.0"},"gitHead":"cf97fcbad510e2a489ea22b364d0c3989dbc3af0","_id":"@beisen/CommonMount@0.0.4","_shasum":"8cb9049300e1519a7a03c8774690d759489ae350","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"beisen","email":"ci@beisen.com"},"dist":{"shasum":"8cb9049300e1519a7a03c8774690d759489ae350","tarball":"https://registry.npmjs.org/@beisen/CommonMount/-/CommonMount-0.0.4.tgz","integrity":"sha512-JeNehsqsfWQHP0rbhuGnXe2l6JCxfA1aYTndQVz5nWNr/6VYHPrmEr3OLyApPUY3q8TPJv7HHeX+ss/vEBXecA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAN9Hj6MaMcQJxvTrA4eNje5GhsxXFoIAxVM3RxWBCQdAiBR0P9NXGy3fzhRMvPddC4lA6xC9IfiLzuof5k/AKHtSg=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/CommonMount-0.0.4.tgz_1483444325932_0.1527979075908661"}},"0.0.5":{"name":"@beisen/CommonMount","version":"0.0.5","description":"### 挂载公共方法 - 组件构造函数中创建挂载容器","main":"lib/index.js","_storybook":{"default_example":"man/index.js"},"scripts":{"build":"npm run build:lib && npm run build:umd && npm run build:story && gulp && gulp fix","build:lib":"babel src --out-dir lib","build:umd":"webpack src/index.js dist/index.js --config webpack.config.js","build:story":"babel story --out-dir man","test":"karma start","dev":"webpack-dev-server --progress --colors --config webpack.dev.config.js","renew":"git checkout-index -f -a --prefix=../$name/ && cp ./.gitignore ../$name"},"keywords":["beisen","react-component","es6","karma","jasmine"],"repository":{"type":"git","url":"git@gitlab.beisen.co:cnpm/CommonMount.git"},"author":{"name":"caoshanmin","email":"caoshanmin@beisen.com"},"maintainers":[{"name":"beisen","email":"ci@beisen.com"}],"license":"ISC","dependencies":{"debounce":"^1.0.0","react":"^0.14.6","react-dom":"^0.14.6"},"devDependencies":{"babel":"^6.5.2","babel-cli":"^6.6.5","babel-core":"^6.7.2","babel-eslint":"^4.1.3","babel-loader":"^6.2.4","babel-preset-airbnb":"^1.0.1","babel-preset-es2015":"^6.3.13","babel-preset-react":"^6.3.13","babel-preset-stage-0":"^6.5.0","case-sensitive-paths-webpack-plugin":"^1.0.1","css-loader":"^0.23.1","enzyme":"^2.0.0","file-loader":"^0.8.5","gulp":"^3.9.1","gulp-concat":"^2.6.0","gulp-insert":"^0.5.0","gulp-rename":"^1.2.2","gulp-replace":"^0.5.4","gulp-sass":"^2.3.2","jasmine-core":"^2.4.1","json-loader":"^0.5.4","karma":"^0.13.19","karma-babel-preprocessor":"^6.0.1","karma-chrome-launcher":"^0.2.2","karma-jasmine":"^0.3.7","karma-webpack":"^1.7.0","node-sass":"^3.4.2","react-addons-test-utils":"^0.14.7","sass-loader":"^3.2.0","style-loader":"^0.13.0","url-loader":"^0.5.7","webpack":"^1.12.10","webpack-dev-server":"^1.14.0"},"gitHead":"dcf3a2c474239b3504122d4e0022d1ba38cc6bee","_id":"@beisen/CommonMount@0.0.5","_shasum":"0c93e2213bd126328edef0666045bc9b4e5c8ba9","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.0","_npmUser":{"name":"beisen","email":"ci@beisen.com"},"dist":{"shasum":"0c93e2213bd126328edef0666045bc9b4e5c8ba9","tarball":"https://registry.npmjs.org/@beisen/CommonMount/-/CommonMount-0.0.5.tgz","integrity":"sha512-muWH6yYl+nAmRp2+7qxMOkJOPGhhDt9cbfoPrvz9+f189gAca426nUFscLuT8JYIh+KgF025UVxcoVl2bd8Yqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCv6WArUuaOU/0cAECk0zFLkVjeQsjkvJ9Y/2B3FViF3QIhAI5FfnAmoNiGRvHjFRDDNILgVdVsDmdQ4iJ45ELEsmHH"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/CommonMount-0.0.5.tgz_1483501139689_0.992109902901575"}}},"readme":"# CommonMount\n\n### 挂载公共方法\n- 组件构造函数中创建挂载容器\n\n示例：\n\n```\nthis.commonMount = new commonMount({\n  containerId: 'AutoComplete_ul', // 容器ID\n  follow: true, // 是否滚动跟随，默认true\n  fixed: true　// 定位：fixed，false时为absolute\n});\n\n```\n\n\n- 在需要挂载的时候传入挂载参数，RenderDOM\n\n需要预先计算出挂载高度并传入\n\n示例：\n\n```\nthis.commonMount.renderDom(\n  'auto-complete-wrap', // wrap's classname/id-name\n  showAutoUl, // content dom\n  this.refs.autoInput, // 滚动跟随节点\n  [\n    this.tar, //挂载节点\n    { // 挂载元素宽高 {width: '', height: ''}\n      width: autoResult && autoResult.offsetwidth,\n      height: autoResultHeight\n    }\n  ]\n);\n```\n\n- 关闭的时候可以卸载节点并取消事件监听\n\n示例：\n\n```\nthis.commonMount.unmountBox();\n```\n\n# Beisen-module-template\n\n### 功能\n\n```\nReact组件开发，并发布到北森cnpm服务器\n```\n\n### 使用方法\n\n#### 1)空项目使用\n\n```\n第一步：git clone git@gitlab.beisen.co:cnpm/beisen-module-template.git\n\n第二步：cd beisen-module-template\n\n第三步：./renew.js 项目路径/项目名称\n\n如执行./renew.js ../testDemo/   //**testDemo**为新项目名称，与该空项目平级，新项目不带git信息，一个纯的项目\n\n第四步：cd ../testDemo/   //此时不带git信息的新项目testDemo建立完成\n\n```\n\n#### 2)修改`package.json`\n\n`package.json`中不允许出现中文\n\n```\n\"name\": \"@beisen/ComponentName\", \n\"author\": {\n    \"name\": \"name\",\n    \"email\": \"name@beisen.com\"\n}, \n\"description\": \"\", \n\"keywords\": [ \n\t\"beisen\",\n    \"react-component\",\n    \"es6\",\n    \"karma\",\n    \"jasmine\"\n],\n\"maintainers\": [\n\t{\n\t\t\"name\": \"name\",\n\t\t\"email\": \"name@beisen.com\" \n\t}\n] \n\n**组件名称（必填）---应首字母大写，若为多个单词拼接，则使用驼峰格式，如TabComponent**\n\n**组件作者（必填）**\n\n**组件概述（必填）**\n\n**组件关键词（必填）eg.Form,Icon,DropDown...**\n\n**维护人员 （必填)**\n\n```\n\n#### 3) 项目文件结构\n```\nReactComponent\n\n—— dist\n  |\n  |—— index.js （webpack打包后的js)\n  |\n—— examples\n  |\n  |—— preview\n    |—— 预览图.png （组件截图）\n  |\n  |—— index.html （可直接打开的示例）\n  |\n—— lib (babel转换后的语法 es6 —> es5) \n  |\n—— src\n  |\n  |—— index.js （组件源码，webpack打包入口）\n  |\n—— tests (测试文件夹)\n  |\n  | —— index-spec.js （测试用例）\n  |\n—— index.html  （组件调用）\n  | \n—— index.js （组件调用）\n  |\n—— karma.conf.js (karma配置)\n  |\n—— webpack.config.js (webpack配置)\n  |\n—— package.json （如有依赖，必须写全）\n  |\n—— README.md （组件使用说明，配置参数）\n\n```\n\n#### 4) 项目运行、打包\n\n* `cnpm install` 或 `npm install` [cnpm使用教程](http://book.beisen.co/ui/Dev/_book/Tools/NPM.html)\n* `npm run dev` （开发环境打包 port:8080）\n* `npm run test` （测试用例）\n* `npm run build` （生产环境打包）\n\n#### 5) 组件开发流程\n\n* 新建项目\n* 项目导出\n* 向组织提出申请，将项目加入cnpm组\n* 申请通过后，项目作者需打tag\n\n打tag后，请同步更新package.json中的version版本号，服务器会`自动`将项目同步或更新到cnpm库中，并添加官方授权，Beisen前端组件库会自动添加或更新组件信息（包含文档，示例和预览图）\n\n应该使用`0.1.0`作为初始化开发版本。\n\n具体版本信息参考[语义化版本 2.0.0](http://semver.org/lang/zh-CN/#section-2)\n\n#### 6) 组件开发要求\n\n* 必须要有`文档`，包括组件使用说明，配置参数，版本信息\n* 必须要有使用`示例`\n* 必须要有`预览图`\n* 必须编写`单元测试`\n\n**[组件接入story步骤]:(http://note.youdao.com/share/?id=413ccdc6cd3570e8cb202468ea0a3696&type=note#/)**\n\n#### 7) 组件开发规范\n\n* 一个`项目`只能对应一个`组件`\n* 纯`react`组件，不需要redux相关内容\n* 如有依赖其他组件，必须在`package.json`中写全\n* 最外层index.js不能命名为其他\n* 统一使用`ES6`语法\n* css统一使用`sass`, 2个空格缩进\n* 代码应有适当`注释`，包括函数、参数\n* 测试文件统一以“-spec”为结尾命名，如app-spec.js\n* 预览图必须命名为preview.png，可以上传多幅预览图（组件平台会以preview.png为主），命名依次为preview1.png、preview2.png依此类推\n* PropTypes定义规范如下：\n\n```\nimport React, {Component, PropTypes} from 'react'\n\nclass Demo extends Component {\n  render() {\n    return <h1>hello world</h1>\n  }\n}\n\nDemo.propTypes = {\n  total: PropTypes.number,\n  next_text: PropTypes.string,\n  callback: PropTypes.func\n}\n\nmodule.exports = Demo;\n```\n\n### React书写规范\n\n#### 每个文件只包含一个React组件\n\n#### 使用JSX语法\n\n#### Class vs React.createClass\n\n```\n// bad\nconst Listing = React.createClass({\n  render() {\n    return <div />;\n  }\n});\n\n// good\nclass Listing extends React.Component {\n  render() {\n    return <div />;\n  }\n}\n```\n\n#### 对于 JSX 使用双引号，对其它所有 JS 属性使用单引号\n\n```\n// bad\n  <Foo style={{ left: '20px' }} />\n\n  // good\n  <Foo style={{ left: \"20px\" }} />\n```\n\n#### 在自闭和标签之前留一个空格，若组件无子组件也应使用自闭标签\n\n```\n// bad\n<Foo/>\n\n// very bad\n<Foo                 />\n\n// bad\n<Foo\n />\n\n// good\n<Foo />\n```\n\n#### 如果组件有多行属性，闭合标签应写在新的一行上\n\n```\n// bad\n<Foo\nbar=\"bar\"\nbaz=\"baz\" />\n\n// good\n<Foo\n  bar=\"bar\"\n  baz=\"baz\"\n/>\n```\n\n#### 生命周期  Composite Component\n\n```\n* - constructor\n*   - componentWillMount\n*   - render\n*   - [children's construtors]\n*     - [children's componentWillMount and render]\n*     - [children's componentDidMount]\n*     - componentDidMount\n*\n*       Update Phase:\n*       - componentWillReceiveProps (only called if parent updated)\n*       - shouldComponentUpdate\n*\t\t  - componentWillUpdate\n*           - render\n* \t\t\t- [children's constructors or receive props phase]\n*         - componentDidUpdate\n*\n* \t    - componentWillUnmount\n*  \t\t- [children's componentWillUnmount]\n*\t- [children's destroyed]\n* - (destroyed)\n```\n#### 执行顺序\n\n```\nconstructor\noptional static methods\ngetChildContext\ncomponentWillMount\ncomponentDidMount\ncomponentWillReceiveProps\nshouldComponentUpdate\ncomponentWillUpdate\ncomponentDidUpdate\ncomponentWillUnmount\nclickHandlers or eventHandlers like onClickSubmit() or onChangeDescription()\ngetter methods for render like getSelectReason() or getFooterContent()\nOptional render methods like renderNavigation() or renderProfilePicture()\nrender\n```\n\n### 参考资料\n\n* [北森前端TalentUI开发文档](http://book.beisen.co/ui/TalentUI/_book/index.html)  \n\n* [React官方文档](https://facebook.github.io/react/)  \n\n* [ES6语法](http://es6.ruanyifeng.com/#docs/intro)\n\n* [Jasmine行为驱动测试官方文档](http://jasmine.github.io/edge/introduction.html)","maintainers":[{"email":"ci@beisen.com","name":"beisencorp"}],"time":{"modified":"2022-06-12T15:08:01.904Z","created":"2016-11-24T02:16:16.521Z","0.0.1":"2016-11-24T02:16:16.521Z","0.0.2":"2016-12-29T07:58:41.997Z","0.0.3":"2017-01-03T06:09:53.958Z","0.0.4":"2017-01-03T11:52:06.178Z","0.0.5":"2017-01-04T03:39:01.939Z"},"keywords":["beisen","react-component","es6","karma","jasmine"],"repository":{"type":"git","url":"git@gitlab.beisen.co:cnpm/CommonMount.git"},"author":{"name":"caoshanmin","email":"caoshanmin@beisen.com"},"license":"ISC","readmeFilename":"README.md"}