Dapp TokenFarm开发(2)--- 修改ts组件
1.2 更换模板
1.2.0 入口文件
修改 入口文件 src/index.js 文件改名为 main.tsx 配置如下
import React from 'react';
import ReactDOM from 'react-dom';
import 'bootstrap/dist/css/bootstrap.css'
import App from './components/App';
ReactDOM.render(<App />, document.getElementById('root'));
1.2.1 组件
src/app.tsx
import React, { Component } from 'react'
import Navbar from './Navbar'
import './App.css'
type StateType={
account:string;
}
type propType={
[propName:string]:any;
}
interface App{
state : StateType;
props: propType
}
class App extends Component {
constructor(props:any) {
super(props)
this.state = {
account: '0x0'
}
}
render() {
return (
<div>
<Navbar account={this.state.account} />
<div className="container-fluid mt-5">
<div className="row">
<main role="main" className="col-lg-12 ml-auto mr-auto" style={{ maxWidth: '600px' }}>
<div className="content mr-auto ml-auto">
<a
href="http://www.dappuniversity.com/bootcamp"
target="_blank"
rel="noopener noreferrer"
>
</a>
<h1>Hello, World!</h1>
</div>
</main>
</div>
</div>
</div>
);
}
}
export default App;
src/Navbar.tsx
import React, { Component } from 'react'
import farmer from '../farmer.png'
type StateType={
}
type propType={
account:string;
[propName:string]:any;
}
interface Navbar{
state : StateType;
props: propType
}
class Navbar extends Component {
render() {
return (
<nav className="navbar navbar-dark fixed-top bg-dark flex-md-nowrap p-0 shadow">
<a
className="navbar-brand col-sm-3 col-md-2 mr-0"
href="http://www.dappuniversity.com/bootcamp"
target="_blank"
rel="noopener noreferrer"
>
<img src={farmer} width="30" height="30" className="d-inline-block align-top" alt="" />
DApp Token Farm
</a>
<ul className="navbar-nav px-3">
<li className="nav-item text-nowrap d-none d-sm-none d-sm-block">
<small className="text-secondary">
<small id="account">{this.props.account}</small>
</small>
</li>
</ul>
</nav>
);
}
}
export default Navbar;
Navbar中存在图片引入错误

在 src 中创建 image.d.ts 配置如下
/*
ts图片声明导入
*/
declare module '*.svg'
declare module '*.png'
declare module '*.jpg'
declare module '*.jpeg'
declare module '*.gif'
declare module '*.bmp'
declare module '*.tiff'
在public 中添加常用工具 babel.min.js 用来解析语法文件
最后把index.html 从 public 目录移到项目根目录(即移到public外)
配置如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="shortcut icon" href="/favicon.ico" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<meta name="theme-color" content="#000000" />
<!--
...
-->
<link rel="manifest" href="/manifest.json" />
<script src="/babel.min.js"></script>
<!--
...
-->
<title>Dapp Token Farm</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
...
-->
<script type="module" src="./src/main.tsx"></script>
</body>
</html>
1.2.3 更换完成
在终端中输入
npm run dev
即可完成前端的部署
网页效果如下

浙公网安备 33010602011771号