0.3.38 • Published 5 years ago

olymc v0.3.38

Weekly downloads
4
License
MIT
Repository
-
Last release
5 years ago

olymComponents

奥林前端工程组件库

奥林大掌柜物理服务有限公司前端规范

1.工程目录结构

+-- build
|   +-- build.js
|   +-- check-version.js
|   +-- compress-js.js
|   +-- server.js
|   +-- utils.js
|   +-- webpack.base.conf.js
|   +-- webpack.build.conf.js
|   +-- webpack.dev.conf.js
|   +-- webpack.build.conf.js
|   +-- webpack.prod.conf.js
|   +-- webpack.test.conf.js
+-- config
|   +-- build.env.js
|   +-- dev.env.js
|   +-- index.js
|   +-- prod.env.js
|   +-- test.env.js
+-- src
|   +-- actions
|   +-- components     // 具有一定通用性,被多个containers引用的
|   |   +-- ComponentA      
|   |   |   +-- ComponentA.jsx 
|   |   |   +-- ComponentA.less 
|   |   ...
|   +-- containers     // 各业务页面
|   |   +-- PageA      
|   |   |   +-- PageA.jsx 
|   |   |   +-- PageA.less 
|   |   ...
|   +-- reducers
|   +-- router
|   +-- util           // 统一放工具类
|   +-- app.jsx
|   +-- index.html
|   +-- main.jsx
+-- static
|   +-- assets
|   +-- common
|   +-- style   
+-- .babelrc
+-- .gitignore
+-- package-lock.json
+-- package.json
+-- webpack.config.js
+-- yarn.lock

2.代码规范

2.1 名称方式

  • 组件名称:大驼峰
  • 属性名称:小驼峰

  • 事件处理函数:handleSomething

  • 自定义事件属性名称:onSomething={this.handleSomething}

  • key: 不能使用数组 index ,构造或使用唯一的 id

  • 组件方法名称:避免使用下划线开头的命名

2.2 代码风格

  • 缩进 ​ 2个空格(重点)
  • 空格 ​ Object的花括号要加1个空格,react的转义不用空格
  • 对齐

    // bad
    <Foo superLongParam="bar"
         anotherSuperLongParam="baz" />
    
    // good
    <Foo
        superLongParam="bar"
        anotherSuperLongParam="baz"
    />
    
    // if props fit in one line then keep it on the same line
    <Foo bar="bar" />
  • 返回

    // bad
    render() {
      return <MyComponent className="long body" foo="bar">
               <MyChild />
             </MyComponent>;
    }
    
    // good
    render() {
      return (
        <MyComponent className="long body" foo="bar">
          <MyChild />
        </MyComponent>
      );
    }
    
    // good, when single line
    render() {
      const body = <div>hello</div>;
      return <MyComponent>{body}</MyComponent>;
    }

2.3 注释

  • 行内注释建议换行,并在所指示的语句之前

  • 紧跟语句的注释需空两格

  • 行内注释双斜杠与注释内容间需空一格

  • 注释内容需为完整语句,中英文和数字间需空一格

    for ( let i = 0; i < 100; i++ ) {
      // This is a comment.
      console.log( 'Print something.' );  // 这又是一个注释。
      // 中文与 English 相结合的注释,带数字 300166 的例子。
    }

2.4 array遍历

  • array

    // 不需要 break 的情况下建议使用
    myArray.forEach((value) => {
      console.log(value);
    });
    // 需要 break 情况下使用
    for (let value of myArray) {
      console.log(value);
      if(value == '') {
        // break;
        // continue;
        // return;  
      }
    }
    
    for(let [index, value] of myArray.entries()) { 
      console.log(index, value)
    }

2.5 function 传参

  • 3个及以上, 使用对象封装传参

2.6 包管理器

  • 统一使用 yarn

3.组件通信处理

3.1 父子组件

  • 子调用父,通过props方式传递参数和方法

  • 父调用子方法

    • 简单的调用(个数较少,不超过3个),直接ref方式调用

      // 用 adForm 的情况下 使用 wrappedComponentRef
      <TemplateInfo 
        dataSource={dataSource} 
        wrappedComponentRef={instance => { this.templateInfo = instance }} 
      />
      
      // 普通情况下 使用 ref
      <TemplateInfo 
        dataSource={dataSource} 
        ref={instance => { this.templateInfo = instance }} 
      />
      
      // 当用 Redux 时,需要 设置 withRef:true
      export default connect(mapStateToProps, null, null, { withRef: true })(CommonInfo)
      
      save = () => {
        // 调用子组件的 saveValidation 方法
        this.templateInfo.saveValidation();
      }
  • 复杂调用(个数超过3个),使用注册方式,使用方式:待完善

3.2 兄弟组件

  • 使用Redux

4.TODO LIST

4.1 hocform 方案验证

4.2 table 组件重构

0.3.38

5 years ago

0.3.37

5 years ago

0.3.36

5 years ago

0.3.34

5 years ago

0.3.33

6 years ago

0.3.32

6 years ago

0.3.30

6 years ago

0.3.29

6 years ago

0.3.28

6 years ago

0.3.27

6 years ago

0.3.26

6 years ago

0.3.25

6 years ago

0.3.24

6 years ago

0.3.23

6 years ago

0.3.22

6 years ago

0.3.21

6 years ago

0.3.20

6 years ago

0.3.19

6 years ago

0.3.18

6 years ago

0.3.17

6 years ago

0.3.16

6 years ago

0.3.15

6 years ago

0.3.14

6 years ago

0.3.13

6 years ago

0.3.12

6 years ago

0.3.11

6 years ago

0.3.10

6 years ago

0.3.9

6 years ago

0.3.8

6 years ago

0.3.7

6 years ago

0.3.4

6 years ago

0.3.3

6 years ago

0.3.0

6 years ago

0.2.44

6 years ago

0.3.2

6 years ago

0.2.43

6 years ago

0.2.42

6 years ago

0.2.41

6 years ago

0.2.40

6 years ago

0.2.39

6 years ago

0.2.38

6 years ago

0.2.37

6 years ago

0.2.36

6 years ago

0.2.35

6 years ago

0.2.34

6 years ago

0.2.33

6 years ago

0.2.32

6 years ago

0.2.31

6 years ago

0.2.30

6 years ago

0.2.29

6 years ago

0.2.28

6 years ago

0.2.27

6 years ago

0.2.26

6 years ago

0.2.25

6 years ago

0.2.24

6 years ago

0.2.23

6 years ago

0.2.22

6 years ago

0.2.21

6 years ago

0.2.20

6 years ago

0.2.19

6 years ago

0.2.18

6 years ago

0.2.17

6 years ago

0.2.16

6 years ago

0.2.15

6 years ago

0.2.14

6 years ago

0.2.13

6 years ago

0.2.12

6 years ago

0.2.11

6 years ago

0.2.10

6 years ago

0.2.9

6 years ago

0.2.8

6 years ago

0.2.7

6 years ago

0.2.6

6 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.64

6 years ago

0.1.63

6 years ago

0.1.62

6 years ago

0.1.61

6 years ago

0.1.59

6 years ago

0.1.58

6 years ago

0.1.56

6 years ago

0.1.57

6 years ago

0.1.55

6 years ago

0.1.54

6 years ago

0.1.53

6 years ago

0.1.52

6 years ago

0.1.51

6 years ago

0.1.50

6 years ago

0.1.49

6 years ago

0.1.48

6 years ago

0.1.47

6 years ago

0.1.46

6 years ago

0.1.45

6 years ago

0.1.44

6 years ago

0.1.43

6 years ago

0.1.42

6 years ago

0.1.41

6 years ago

0.1.40

6 years ago

0.1.39

6 years ago

0.1.38

6 years ago

0.1.37

6 years ago

0.1.36

6 years ago

0.1.35

6 years ago

0.1.34

6 years ago

0.1.33

6 years ago

0.1.32

6 years ago

0.1.31

6 years ago

0.1.30

6 years ago

0.1.29

6 years ago

0.1.28

6 years ago

0.1.27

6 years ago

0.1.26

6 years ago

0.1.25

6 years ago

0.1.24

6 years ago

0.1.23

6 years ago

0.1.22

6 years ago

0.1.21

6 years ago

0.1.20

6 years ago

0.1.19

6 years ago

0.1.18

6 years ago

0.1.17

6 years ago

0.1.16

6 years ago

0.1.15

6 years ago

0.1.14

6 years ago

0.1.13

6 years ago

0.1.12

6 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.6

6 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.0.26

7 years ago

0.1.3

7 years ago

0.0.25

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.0.24

7 years ago

0.0.23

7 years ago

0.1.0

7 years ago

0.0.22

7 years ago

0.0.21

7 years ago

0.0.20

7 years ago

0.0.19

7 years ago

0.0.18

7 years ago

0.0.17

7 years ago

0.0.16

7 years ago

0.0.15

7 years ago

0.0.14

7 years ago

0.0.13

7 years ago

0.0.12

7 years ago

0.0.11

7 years ago

0.0.10

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago