美文网首页前端开发Web前端之路让前端飞
ReactDemo:基于AntDesign和玩安卓Api

ReactDemo:基于AntDesign和玩安卓Api

作者: Yun丶Lei | 来源:发表于2019-08-09 17:52 被阅读18次

    前言

    已学习 React 为前提,这是一个学习的 Demo,用于熟悉 React 项目创建,react-router 的使用,JSX 以及阿里开源 UI 库 AntDesign。Demo中数据来自WanAndroid

    使用库

    Demo 解析

    1、创建项目

    # 全局安装
    npm install -g create-react-app
    # 构建一个my-app的项目
    npx create-react-app my-app
    cd my-app
    
    # 启动编译当前的React项目,并自动打开 http://localhost:3000/
    npm start
    

    2、网络请求

    基于 axios 的封装

    import axios from "axios";
    import qs from "qs";
    
    let http = {
        post: "",
        get: ""
    };
    
    http.post = (api, data) => {
        let params = qs.stringify(data);
        return new Promise((resolve, reject) => {
            axios
                .post(api, params)
                .then(res => {
                    resolve(res.data);
                })
                .catch(e => {
                    reject(e);
                });
        });
    };
    
    http.get = (api, data) => {
        return new Promise((resolve, reject) => {
            axios
                .get(api, {
                    params: data
                })
                .then(res => {
                    resolve(res.data);
                })
                .catch(e => {
                    reject(e);
                });
        });
    };
    
    export default http;
    

    然后可以直接使用,也可以再次封装

    import api from "../../src/api/baseApi";
    
    export function _banner() {
        return api.get("/banner/json");
    }
    

    使用时以下两种方式均可

    async getBanner() {
        let res = await _banner();
        this.setState({
            bannerList: res.data
        });
    }
    //或者
    getBanner() {
        _banner().then(res=>{
          this.setState({
              bannerList: res.data
          });
        })
    }
    

    3、Create React App 跨域问题

    在 package.json 中加入

    "proxy": "https://www.wanandroid.com"
    

    或者,以下方式可支持多域名代理

    "proxy": {
      "/api": {
          "target": "https://www.wanandroid.com",
          "ws": true,
          "changeOrigin": true,
          "pathRewrite": {
              "^/api": "" // rewrite path
          }
      }
    }
    

    第二种方式需要在请求路径加/api,如下

    export function _banner() {
        return api.get("/api/banner/json");
    }
    

    4、router的使用

    参考React Router 中文文档或者react-router

    5、UI库

    使用AntDesign

    //引入
    import { Menu, Layout } from "antd";
    const { Header, Content, Footer } = Layout;
    //使用
    render(){
      return(
         <Layout>
            <Header>...</Header>
            <Content>...</Content>
            <Footer>...</Footer>
         </Layout>
      )
    }
    

    Demo截图

    首页
    项目
    体系
    公众号

    上述Demo源码WanAndroid-React-Demo

    相关文章

      网友评论

        本文标题:ReactDemo:基于AntDesign和玩安卓Api

        本文链接:https://www.haomeiwen.com/subject/wktkjctx.html