本帖最后由 棕榈 于 2020-4-10 16:33 编辑
FineUI + React 使用 Antd 组件
在之前我介绍了 Knockout 与 Vue 在 FineUI 中的使用,并对 FineUI 的控件进行了相应的封装,这里我介绍一下在 FineUI 中如何使用 React ,并用 Antd 组件作为示例。
Angular、React、Vue 应该是现今比较流行的JS框架,其中 React 与 Vue 比较相近,都主要关注于 View,你只要有JS与HTML基础,入门还是比较轻松的。
由于使用 React 需要用到 JSX ,JSX 是 React 创建组件的语法糖,在生产环境中需要将其编译成 JS 文件,我这里将介绍在 FineUICore 项目中如何进行配置。
我们这里使用的是 TSX,它是由 Typescript 来编写的 JSX 文件,在 VS 中可以直接编译成JS文件,这里我采用的是 FineUICore 空项目文件,在项目中创建一个 tsconfig.json 文件
- {
- "compilerOptions": {
- "noImplicitAny": false,
- "noEmitOnError": true,
- "removeComments": false,
- "jsx": "react",
- "outDir": "wwwroot/js",
- "sourceMap": true,
- "target": "es5"
- },
- "exclude": [
- "node_modules",
- "wwwroot"
- ]
- }
复制代码
主要添加了以下两行
- "jsx": "react",
- "outDir": "wwwroot/js",
复制代码
再添加一个 typings.d.ts 类型定义文件
- declare const F;
- declare const antd;
- declare const React;
- declare const ReactDOM;
复制代码
创建一个 React.cshtml 页面,同时再创建一个 React.tsx 文件
在 React.cshtml 文件中引入 react reactdom antd 的JS文件
- @section script {
- <script src="~/react/react.production.min.js"></script>
- <script src="~/react/react-dom.production.min.js"></script>
- <script src="~/antd/antd.min.js"></script>
- <script src="~/js/React.js"></script>
- }
复制代码
到现在为止配置已完成了,下面的工作就是缩写 react 的代码了
下面是我拷贝 Antd 官网中的示例代码:
- const Button = antd.Button;
- const Progress = antd.Progress;
- const Slider = antd.Slider;
- const Steps = antd.Steps;
- const Step = Steps.Step;
- const Timeline = antd.Timeline;
- const Empty = antd.Empty;
- const Result = antd.Result;
- class App extends React.Component {
- render() {
- return <div>
- <Button type="primary">Primary</Button>
- <Button>Default</Button>
- <Button type="dashed">Dashed</Button>
- <Button type="link">Link</Button>
- <br />
- <br />
- <Progress type="circle" percent={75} />
- <Progress type="circle" percent={70} status="exception" />
- <Progress type="circle" percent={100} />
- <br />
- <br />
- <Slider defaultValue={30} />
- <Slider range defaultValue={[20, 50]} />
- <br />
- <br />
- <Steps current={1}>
- <Step title="Finished" description="This is a description." />
- <Step title="In Progress" subTitle="Left 00:00:08" description="This is a description." />
- <Step title="Waiting" description="This is a description." />
- </Steps>
- <br />
- <br />
- <Timeline>
- <Timeline.Item>Create a services site 2015-09-01</Timeline.Item>
- <Timeline.Item>Solve initial network problems 2015-09-01</Timeline.Item>
- <Timeline.Item>Network problems being solved 2015-09-01</Timeline.Item>
- </Timeline>
- <br />
- <br />
- <Empty />
- <br />
- <br />
- <Result
- status="success"
- title="Successfully Purchased Cloud Server ECS!"
- subTitle="Order number: 2017182818828182881 Cloud server configuration takes 1-5 minutes, please wait."
- extra={[
- <Button type="primary" key="console">
- Go Console
- </Button>,
- <Button key="buy">Buy Again</Button>,
- ]}
- />
- </div>
- }
- }
- F.ready(() => {
- ReactDOM.render(<App />, document.getElementById('app'));
- });
复制代码
示例项目到知识星球下载
|