zoukankan      html  css  js  c++  java
  • react+taro-JYwebApp模板集成方案项目搭建【1】

    本章节:
    讲述基于react+taro-JYwebApp,项目的基础搭建。本主题讲述了react+taro-JYwebApp 、webapp模板-集成方案,从零到一的手写搭建全过程。
    
    该项目不仅是一个持续完善、高效简洁的webapp模板,还是一套企业级webapp开发集成方案,致力于打造一个与时俱进、高效易懂、高复用、易维护扩展的应用方案。

      项目开始搭建时间:2020-06-11

    环境准备

     

    1、安装 tarojs/cli

    cnpm install -g @tarojs/cli
    
    
    2、初始化项目

    taro init myApp

    3、项目运行
    npm run dev:h5

    npm run dev:weapp

     4、浏览器兼容性(IE 11测试) IE11不支持

     5、使用redux

    cnpm install --save redux @tarojs/redux @tarojs/redux-h5 redux-thunk redux-logger
    6、配置@

     store的结构

    store/index.js

    import { createStore, applyMiddleware } from 'redux'
    
    import thunkMiddleware from 'redux-thunk'
    
    import { createLogger } from 'redux-logger'
    
    import rootReducer from './reducers/index'
    
    
    
    const middlewares = [
    
        thunkMiddleware,
    
        createLogger()
    
    ]
    
    
    
    export default function configStore() {
    
        const store = createStore(rootReducer, applyMiddleware(...middlewares))
    
        return store
    
    }

    reducers/index.js

    import { combineReducers } from 'redux'
    
    import base from './base'
    
    export default combineReducers(Object.assign({
    
      base
    
    }, {
    
    
    }))

    reducers/base.js

    import Taro from '@tarojs/taro'
    
    import { THEME_COLOR } from '@/utils/constant'
    
    import { UPDATE_TOKEN } from '../constants/base'
    
    
    
    const LOCAL_TOKEN = 'token'
    
    
    
    const INITIAL_STATE = {
    
      // 主题色
    
      themeColor: THEME_COLOR,
    
      // 认证Token
    
      token: Taro.getStorageSync(LOCAL_TOKEN) || '',
    
    }
    
    
    
    export default function base(state = INITIAL_STATE, action) {
    
      switch (action.type) {
    
        // 更新token
    
        case UPDATE_TOKEN:
    
          Taro.setStorageSync(LOCAL_TOKEN, action.payload)
    
          return {
    
            ...state,
    
            token: action.payload || ''
    
          }
    
        default:
    
          return state
    
      }
    
    }

    constants/base.js

    export const UPDATE_TOKEN = 'upateToken'

    actions/base.js

    import {
    
        UPDATE_TOKEN
    
    } from '../constants/base'
    
    
    
    export const updateToken = (token) => {
    
        return {
    
            type: UPDATE_TOKEN,
    
            payload: token || ''
    
        }
    
    }

    组件调用

    import Taro, { Component, Config } from '@tarojs/taro'
    
    import { View, Text } from '@tarojs/components'
    
    import { connect } from '@tarojs/redux'
    
    import { updateToken } from '@/store/actions/base'
    
    import './index.scss'
    
    @connect(({ base }) => ({
    
      ...base
    
    }), (dispatch) => ({
    
      updateToken(token) {
    
        dispatch(updateToken(token))
    
      }
    
    }))
    
    export default class Index extends Component {
    
    
    
      componentWillMount() { }
    
    
    
      componentDidMount() {
    
        this.props.updateToken('zxb')
    
        console.log(this.props)
    
      }
    
    
    
      componentWillUnmount() { }
    
    
    
      componentDidShow() { }
    
    
    
      componentDidHide() { }
    
    
    
      /**
    
       * 指定config的类型声明为: Taro.Config
    
       *
    
       * 由于 typescript 对于 object 类型推导只能推出 Key 的基本类型
    
       * 对于像 navigationBarTextStyle: 'black' 这样的推导出的类型是 string
    
       * 提示和声明 navigationBarTextStyle: 'black' | 'white' 类型冲突, 需要显示声明类型
    
       */
    
      config: Config = {
    
        navigationBarTitleText: '首页'
    
      }
    
    
    
      render() {
    
        console.log(this.props)
    
        return (
    
          <View className='index'>
    
            <Text>Hello world223!</Text>
    
            <Text>{this.props.token}</Text>
    
          </View>
    
        )
    
      }
    
    }
    本章节总结:讲述基于tarojs/cli,
    
    项目的基础搭建。
    
    1、tarojs/cli基础配置
    
    2、@符号配置
    
    3、redux基础配置(集成到props)
    
    4、ie浏览器兼容测试
    
    下章节请关注个人微信公众号【微信悦】,欢迎持续关注:http://mp.weixin.qq.com/mp/homepage?__biz=MzIyOTg4MzQyNw==&hid=14&sn=7d86ce3643d3da16c13052562e2f2484&scene=18#wechat_redirect
    备注:(使用微信客户端打开)
    如需下载源代码请联系博主(微信号:lovehua_5360)

    个人微信公众号:【微信悦】

    微信公众号原文链接:https://mp.weixin.qq.com/s/mx5q737aWB-yHNsW3FyZxQ

  • 相关阅读:
    CSS选择器
    python——前端常用的标签
    用socket发送信息在浏览器上显示出来
    Python并发编程-事件驱动模型
    python中的协程
    controller中两个方法之间共享一个变量LinkedHashMap
    分布式缓存和本地缓存
    Java基础方法
    log4j2配置日志大小,个数等
    开发一个根据xml创建代理类的小框架
  • 原文地址:https://www.cnblogs.com/wxy-zhangxiaobin/p/13188349.html
Copyright © 2011-2022 走看看