我在React应用程序中尝试了一下CloudScape

我想做的事情 (Wǒ zuò de

使用JavaScript编写React应用程序并引入Cloudscape Design System来使界面看起来像AWS。

制作一个React应用

首先,构建一个React应用程序。

npx create-react-app react-app

然后,会创建一个名为”react-app”的文件夹,请切换到该文件夹中。

cd react-app

自动安装了React应用所需的模块,并生成了类似于package.json的文件。

{
  "name": "react-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.17.0",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-scripts": "5.0.1",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

文件夹的结构是这样的

image.png

请尝试启动应用程序。

npm start

在浏览器中打开时,
http://localhost:3000/

当看到React页面时,表示成功!

image.png

试着安装CloudScape。

首先,在react-app文件夹下安装CloudScape所需的模块。

npm install @cloudscape-design/global-styles
npm install @cloudscape-design/components

然后,package.json的dependencies应该是这样的。

  "dependencies": {
    "@cloudscape-design/components": "^3.0.400", #ここが追加された
    "@cloudscape-design/global-styles": "^1.0.12", #ここが追加された
    "@sap/approuter": "^14.3.3",
    "@testing-library/jest-dom": "^5.17.0",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-scripts": "5.0.1",
    "web-vitals": "^2.1.4"
  },

现在我已经能够写CloudScape的源代码了。

使用CloudScape创建屏幕布局。

在src文件夹下的文件是React组件,因此在这里创建CloudScape。

image.png

首先,在初始阶段微调了创建的index.js文件。

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import Test from './Test'; #これから作るCloudScapeのコンポーネント
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <Test /> {/* CloudScapeで作ったコンポーネントを入れ替える */}
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

下一步,创建一个名为 Test.js 的组件,并将其放置在 src 目录下。这段代码用于在类似 AWS 管理控制台的界面中,放置一个简单的输入表单和按钮。

import { useState } from "react";
import Header from "@cloudscape-design/components/header";
import Container from "@cloudscape-design/components/container";
import SpaceBetween from "@cloudscape-design/components/space-between";
import Input from "@cloudscape-design/components/input";
import Button from "@cloudscape-design/components/button";

export default function Test() {
    const [value, setValue] = useState("");

    return (
        <Container>
            <SpaceBetween size="m">
                <Header variant="h1">Hello World!</Header>

                <Container>
                    <SpaceBetween size="s">
                        <span>Start editing to see some magic happen</span>
                        <Input
                            value={value}
                            onChange={(event) => setValue(event.detail.value)}
                        />
                        <Button variant="primary">Click me</Button>
                    </SpaceBetween>
                </Container>
            </SpaceBetween>
        </Container>
    );
}

然后,再次进行操作确认,
http://localhost:3000/

当你看到这样的画面时,表示成功了!

image.png

如果我们继续制作其他更多的组件,那么我们的网站将变得更加完美且类似于AWS的风格!

参考网站

 

bannerAds