FineUI 官方论坛
标题:
FineUI + React 使用 Antd 组件
[打印本页]
作者:
棕榈
时间:
2020-4-10 16:34
标题:
FineUI + React 使用 Antd 组件
本帖最后由 棕榈 于 2020-4-10 16:33 编辑
FineUI + React 使用 Antd 组件
[attach]12392[/attach]
在之前我介绍了 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'));
});
复制代码
示例项目到知识星球下载
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4