Google Earth Engine APP——gee-ui geetemp 前端团队组件库

时间:2024-10-22 07:17:19

通过本地python端的安装实现gee ui在本地的使用

Getting started

安装

  1. git clone git@:gee-lab/
  2. cd gee-ui
  3. yarn install

开发

yarn dev

发布

yarn build

启动 storybook

storybook 是组件的文档工具,你可以启动它来在线查看组件如何使用,以及组件的 demo

yarn docs

现在你可以在浏览器中打开http://localhost:6006, 查看组件使用文档

组件

组件实现

在 src/components 目录下新建一个组件目录,比如 button。现在 components 目录下多了一个 button 目录。

在 button 目录下新建文件,用来编写 button 组件的 js 部分

  1. import React from "react";
  2. const AntButton = require("antd/lib/button");
  3. export default class Button extends {
  4. render() {
  5. const props = { type: "danger", ... };
  6. return <AntButton {...props} className="gee-button" />;
  7. }
  8. }

我们引入了 antd 的 button 组件require("antd/lib/button")作为被包装组件,因为我们需要在它的基础上去实现我们的 button 组件。这里我们没有使用import button from 'antd/lib'是因为 import 会把整个 antd 组件库引入,增加了代码量。

组件的样式同样也需要先引入antd/lib/button的样式,再重写定义自己的样式。在 button 目录下新建style/style/两个文件,看下style/的内容

  1. import "antd/lib/button/style";
  2. import "./";

第一行是引入 antd button 的样式,第二行是引入自定义样式文件,你可以在 写样式来覆盖 antd button 的默认样式。

组件用例

用例编写

编写组件用例,提供给 storybook 生成使用文档,服务于 gee-ui 的使用者。 新建button\examples目录,继续新建一个文件,编写用例组件展示说明 button 组件的 danger 状态,你也可以新建其他用例组件来说明 button 组件的剩余状态,比如 primary,disabled 等。

  1. //
  2. import React, { Component } from "react";
  3. import "../style";
  4. import Button from "../index";
  5. const sectionStyle = {
  6. display: "flex",
  7. flexDirection: "column"
  8. };
  9. const articleStyle = {
  10. display: "flex",
  11. margin: "5px 0px"
  12. };
  13. const buttonStyle = {
  14. marginRight: "5px"
  15. };
  16. export default class extends Component {
  17. render() {
  18. return (
  19. <section style={sectionStyle}>
  20. <article style={articleStyle}>
  21. <Button style={buttonStyle} type="danger">
  22. danger
  23. </Button>
  24. <Button type="danger" disabled={true}>
  25. danger disabled
  26. </Button>
  27. </article>
  28. </section>
  29. );
  30. }
  31. }

连接 storybook

为了用例能被 storybook 使用,需要在docs/文件下做以下配置

  1. = [
  2. {
  3. name: "Button",
  4. component: getDefaultExport(require("../src/components/button")),
  5. examplesContext: (
  6. "../src/components/button/examples",
  7. true,
  8. /\.jsx?$/
  9. ),
  10. examplesContextRaw: (
  11. "!!raw-loader!../src/components/button/examples",
  12. true,
  13. /\.jsx?$/
  14. )
  15. },
  16. {
  17. name: "Modal",
  18. component: getDefaultExport(require("../src/components/modal")),
  19. examplesContext: (
  20. "../src/components/modal/examples",
  21. true,
  22. /\.jsx?$/
  23. ),
  24. examplesContextRaw: (
  25. "!!raw-loader!../src/components/modal/examples",
  26. true,
  27. /\.jsx?$/
  28. )
  29. }
  30. ];

我们在数组中新增了一个 button 相关的配置项,这样就完成了组件用例与 storybook 的连接。打开http://localhost:6006 网页侧边栏应该多了一个 Button 项,可以开始查看关于 Button 组件的使用实例。

组件测试

新建button\文件...