1.3.5 • Published 8 months ago

@gzbapp/components v1.3.5

Weekly downloads
1
License
MIT
Repository
-
Last release
8 months ago

name: '@gzbapp/components'

@gzbapp/components 是严格根据 SAPP UI 规范定制的一套组件库,主要用于工作宝应用前台。 SAPP UI 规范定制2.0-更新于2023-05

特点

  • 组件高度自治, 业务解耦
  • 支持深色模式
  • 适配移动端和桌面端
  • 支持多语言

安装

$ yarn add @gzbapp/components

因为 @gzbapp/components SAPP 开发套件的一部分,也可以通过 @gzbapp/packages 安装:

$ yarn add @gzbapp/packages

配置

以 @gdjiami/cli 为例, package.json 配置如下:

{
  // ...
  "jm": {
    "importPlugin": [
      {
        "libraryName": "antd",
        "libraryDirectory": "es",
        "style": "css"
      },
      {
        "libraryName": "@gzbapp/components",
        "libraryDirectory": "es",
        "style": "css"
      }
    ]
  }
}

我们使用了和 antd 一样的源代码组织结构,通过 babel-import-plugin 来实现按需导入代码和样式。

基本用法

初始化多语言

@gzbapp/components 依赖于 @gzbapp/i18n 来实现多语言,所以在入口处,需要进行多语言初始化:

/**
 * App entry
 */
import ready from '@gzbapp/runtime'
import i18n, { initial, addAppBundles, AvailableLanguge } from '@gzbapp/i18n'
import { I18n } from '@gzbapp/components'

import React from 'react'
import ReactDOM from 'react-dom'
import App from '~/containers/App'

ready().then(async () => {
  if (window.GZBSupport) {
    // 初始化 i18n
    await initial({
      supportBackend: true,
      backendName: 'demo',
    })

    // 加载组件库多语言
    await I18n.initial()

    // 本地多语言
    addAppBundles({
      [AvailableLanguge.zh]: {
        hello: '你好',
      },
      [AvailableLanguge.tw]: {
        hello: '你好',
      },
      [AvailableLanguge.en]: {
        hello: 'hello',
      },
    })

    ReactDOM.render(<App />, document.getElementById('root'), () => {
      console.log('首次渲染完成, 耗时 ', performance.now() + ' ms')
    })
  }
})

组件使用

用法和 Antd 一样,具体组件用法见组件 API。

import React from 'react'
import { ScrollView, Button } from '@gzbapp/components'

export default function ButtonDemo() {
  return (
    <ScrollView className="jm-bg-main">
      <div className="jm-btns">
        <Button>hello</Button>
        <Button loading>hello</Button>
        <Button loading danger>
          hello
        </Button>
      </div>
      <Button type="block">hello</Button>
      <Button type="block" danger>
        hello
      </Button>
      <Button type="rounded">hello</Button>
      <Button type="rounded" disabled>
        hello
      </Button>
      <Button type="rounded" danger>
        hello
      </Button>
      <Button type="rounded" danger loading>
        hello
      </Button>
    </ScrollView>
  )
}

因为导入语句会经过 babel-import-plugin 处理, 最终编译结果为:

import ScrollView from '@gzbapp/components/es/scroll-view'
import '@gzbapp/components/es/scroll-view/style/css'
import Button from '@gzbapp/components/es/button'
import '@gzbapp/components/es/button/style/css'

所以说 import-plugin 的配置非常重要,它可以确保按需导入样式和组件。

Typescript 类型

所有组件的 Typescript 类型声明都定义在导出变量 T 中, 例如你可以通过下面的代码导入 Avatar 组件的 AvatarProps

import { T } from '@gzbapp/components'

export interface MyProps extends T.Avatar.AvatarProps {}

SAPP UI 规范定制2.0 更新记录

  1. app-layout组件封装完成(20230706)
1.3.5

8 months ago

1.3.4-beta2

8 months ago

1.3.4-beta3

8 months ago

1.3.4-beta1

8 months ago

1.3.3-beta2

8 months ago

1.3.3-beta3

8 months ago

1.3.3-beta1

8 months ago

1.3.4-alpha4

8 months ago

1.3.4-alpha3

8 months ago

1.3.4-alpha2

8 months ago

1.3.4-alpha1

8 months ago

1.3.2-beta3

9 months ago

1.3.2-beta4

9 months ago

1.3.2-beta5

9 months ago

1.3.2-beta6

9 months ago

1.3.2-beta2

9 months ago

1.3.3

9 months ago

1.2.8

1 year ago

1.3.1-beta3

10 months ago

1.3.1-beta2

10 months ago

1.3.1-beta1

10 months ago

1.3.2-beta1

9 months ago

1.2.8-beta6

11 months ago

1.3.0-beta2

11 months ago

1.3.0-beta1

11 months ago

1.3.0-beta4

11 months ago

1.3.0-beta3

11 months ago

1.2.8-beta1

1 year ago

1.2.8-beta2

1 year ago

1.2.8-beta3

12 months ago

1.2.8-beta4

12 months ago

1.2.8-beta5

12 months ago

1.3.0-beta6

10 months ago

1.3.0-beta5

10 months ago

1.2.9

12 months ago

1.3.2

9 months ago

1.3.1

10 months ago

0.5.34

1 year ago

1.3.0

11 months ago

1.2.9-beta2

12 months ago

1.2.9-beta1

12 months ago

1.2.7

1 year ago

1.2.6-beta4

1 year ago

1.2.6-beta5

1 year ago

1.2.6-beta3

1 year ago

1.2.6-beta1

1 year ago

1.2.6-beta2

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4-beta4

1 year ago

1.2.4-beta3

1 year ago

1.2.4

1 year ago

1.2.4-beta2

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.1.9

1 year ago

1.1.8-beta3

1 year ago

1.1.8-beta4

1 year ago

1.1.8

1 year ago

1.1.7-beta3

1 year ago

1.1.8-beta1

1 year ago

1.1.8-beta2

1 year ago

1.1.7-beta2

1 year ago

1.1.7-beta1

1 year ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1-beta7

2 years ago

1.0.7-beta4

2 years ago

1.0.7-beta3

2 years ago

1.0.7-beta2

2 years ago

1.0.7-beta1

2 years ago

1.0.8-beta1

2 years ago

1.0.8-beta2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.1.1-beta1

2 years ago

1.1.1-beta2

2 years ago

1.1.1-beta3

2 years ago

1.1.1-beta4

2 years ago

1.1.1-beta5

2 years ago

1.1.1-beta6

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.4-beta5

2 years ago

1.0.4-beta4

2 years ago

1.0.4-beta7

2 years ago

1.0.4-beta6

2 years ago

1.0.4-beta8

2 years ago

1.0.4-beta1

2 years ago

1.0.4-beta3

2 years ago

1.0.4-beta2

2 years ago

1.1.0-beta5

2 years ago

1.1.0-beta3

2 years ago

1.0.5-beta4

2 years ago

1.1.0-beta4

2 years ago

1.0.5-beta3

2 years ago

1.1.0-beta1

2 years ago

1.1.0-beta2

2 years ago

1.0.2-beta2

2 years ago

1.0.2-beta3

2 years ago

1.0.2-beta1

2 years ago

1.0.5-beta2

2 years ago

1.0.5-beta1

2 years ago

0.5.33

4 years ago

0.5.32

4 years ago

0.5.31

4 years ago

0.5.30

4 years ago

0.5.29

4 years ago

0.5.28

4 years ago

0.5.27

4 years ago

0.5.26

4 years ago

0.5.25

4 years ago

0.5.24

4 years ago

0.5.21

5 years ago

0.5.20

5 years ago

0.5.19

5 years ago

0.5.17

5 years ago

0.5.16

5 years ago

0.5.13

5 years ago

0.5.12

5 years ago

0.5.11

5 years ago

0.5.9

5 years ago

0.5.7

5 years ago

0.5.6

5 years ago

0.5.4

5 years ago

0.5.3

5 years ago

0.5.5

5 years ago

0.5.2

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.4.3

5 years ago

0.4.2

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.21

5 years ago

0.2.20

5 years ago

0.2.19

5 years ago

0.2.18

5 years ago

0.2.17

5 years ago

0.2.16

5 years ago

0.2.15

5 years ago

0.2.14

5 years ago

0.2.13

5 years ago

0.2.12

5 years ago

0.2.11

5 years ago

0.2.10

5 years ago

0.2.9

5 years ago

0.2.8

5 years ago

0.2.7

5 years ago

0.2.6

5 years ago

0.2.5

5 years ago

0.2.4

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.1.1-alpha.0

5 years ago