小程序结构

*本项目使用taro框架,一套react代码实现H5和多种小程序多端应用,样式预处理使用stylus
*开发需要查阅taro文档(框架),react文档(组件),stylus文档(样式)
*小程序容器:view = div	text = span	 image = img

Config

配置文件,配置开发和测试环境的路径、请求地址、设备的比例、服务器代理等,类vue.config.js

Src

/Actions
    redux相关,用于全局存储数据,类似vuex
    修改数据的动作,调用里面的方法即可修改数据(改数据的方法)
    组件中如果引入userAct,即可调用里面的方法改全局仓库的数据

/reducers
    redux相关,
    定义了应该如何修改数据(应该怎么改数据)

/store
    redux相关,
    Store为仓库,存放数据的中心仓库(创建一个可响应的数据)

/apis
    /config.js
        接口路径

/index.js
    请求时的操作,发请求前验证token,拦截错误请求等

/assets
    静态文件夹,存放css文件和图片

/components
    组件,可复用的组件,只负责视图

/constants
    存放几个字符串常量(用于验证某个数组中数据是否包含某个字符)

/lib
    /Ec-canvas
        某个canvas库,用于渲染图表的库
    /plugins
        插件,顾名思义,处理日期格式
    /techarts
        图表组件,二次封装echarts和taro小程序图表组件,为了可同时兼容H5和小程序多端的可复用图表组件
    /utils.js
        公共方法,处理路径,路由跳转等,为了兼容H5和小程序的公共处理方法

    /pages
        页面组件,一个组件一个页面

    /public
        里面的txt文件,用于H5端把目录拷贝到生产环境目录里,原因不明

    /app.config.js
        多端全局配置,页面路由,tab菜单,全局的颜色等

    /app.jsx
        最上层容器div组件
        configStore  注入redux仓库
        vconsole  小程序中的调试控制台(可在手机里看控制台)

    /app.styl
        全局样式

    /index.html
        主页面html文件,里面有一个方法用于检测设备的宽度

Page

Index
Index.jsx  主页面
Components
Pagedriver 司机页面
Pageorder 订单页面(命名错误了)
Pageuser 用户页面(命名错误了)
Pageyunlidata 司机页面里的子页面

Components

Watermark 水印组件
Bigtabs 头部标签(司机,订单,用户),里面用了
swiperPromptview 提示器组件
Title 标题组件(比如数据洞察)
Select 横向选择框(比如城市、维度)
Datepicker 日期选择器(就是你看到的2022.03.08)
Trendtable 上涨下跌的表格(指标名称 一周趋势那个表格)
Custommultchart 一个可单选多选的表格(比如自定义指标)

怎样调用接口

  1. 在/src/apis/configs.js 中加上接口地址
  2. 在/src/actions/**.js 中写一个function
	import apis from "../apis";
	//apis是对taro的请求二次封装好的请求方法
	import Taro from "@tarojs/taro";
	//Taro.setStorageSync()方法,可以缓存数据
	//Taro.getStorageSync()方法,获取已缓存的数据
	export function getOverviewData(data, cb) {
	  return async dispatch => {
	    const key = Taro.getStorageSync("key"); //获取本地缓存的数据
	    const resp = await apis.getOverviewData({ key }, cb);
	    const res = resp.data || {};
	    const fields = (res.data && res.data.body) || [];
	    if (res.code === 0) {
	      dispatch({ type: "OverviewData", data: fields });
	    } else {
	      dispatch({ type: "OverviewDataMsg", data: res.message });
	    }
	  };
	}

getOverviewData 方法名,在组件中引入action文件调用此方法
Taro.getStorageSync(); //获取本地缓存的数据
apis.getOverviewData(); 调用接口操作,第一个参数是传入的数据,第二个是接口调用成功的回调,第一个参数是后端的res,使用方式如下:

apis.getOverviewData({
	name: 'xiaohei',
	(res)=>{ console.log(res) }
}); 

dispatch({ type: “OverviewData”, data: fields }); 将数据传到store中

  1. 在组件中调用请求方法和获取仓库的数据
import { connect } from "react-redux";
import * as commonAct from "@/actions/common.act";
@connect(
  ({ apiData }) => {
    let { OverviewData = [], OverviewDataMsg = "" } = apiData;
    return {
      OverviewData,
      OverviewDataMsg
    };
  },
  //将仓库的数据绑在props里面
  dispatch => ({
    getOverviewData(data, cb) {
      dispatch(commonAct.getOverviewData(data, cb));
    }
  })
  //将方法绑在props里面
)

@connect 方法可以把全局的数据绑定在该组件的props里面
第一个参数 拿数据 ,将仓库的数据绑在props里面
第二个参数 绑定方法,方法绑在props里面

调用:

	this.props.getOverviewData({
		name: 'xiaohei',
		(res)=>{ console.log(res) }
	})

获取数据:

	this.props.OverviewData
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值