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号