zoukankan      html  css  js  c++  java
  • 使用wepy开发微信小程序01——常用的组件

    1、axio.js

    'use strict'
    
    import axios from 'axios'
    import wepyAxiosAdapter from 'wepy-plugin-axios/dist/adapter.js'
    
    const instance = axios.create({
      adapter: wepyAxiosAdapter(axios),
      baseURL: 'https://API_HOST/api',
      headers: {
        'Authorization': undefined
      },
      validateStatus: () => true
    })
    
    export default instance
    
    let token = ''
    export function getToken () { return token }
    export function setToken (newToken) {
      token = newToken
      instance.defaults.headers['Authorization'] = 'Bearer ' + token
    }

    2、util.js

    'use strict'
    
    import * as d3TimeFormat from 'd3-time-format'
    
    /** 解析日期 */
    function parseDate (date) {
      let d = new Date(date)
      if (Number.isNaN(+d)) {
        d = new Date()
      }
    
      return d
    }
    
    /** 只保留一个日期的年、月、日 */
    export function trimDate (date) {
      const d = parseDate(date)
      return new Date(d.getFullYear(), d.getMonth(), d.getDate())
    }
    
    // 预定义的日期时间格式
    const dateFormat = d3TimeFormat.timeFormat('%Y-%m-%d')
    const timeFormat = d3TimeFormat.timeFormat('%H:%M')
    
    /** 格式化日期 */
    export function formatDate (date) {
      const d = parseDate(date)
      return dateFormat(d)
    }
    
    /** 格式化时间 */
    export function formatTime (date) {
      const d = parseDate(date)
      return timeFormat(d)
    }
    
    /** 生成用于表单绑定的 change 函数 */
    export function generateChangeMethods (parent, props) {
      const result = {}
      props.forEach(prop => {
        result[prop + 'Changed'] = function (e) {
          this[parent][prop] = e.detail.value
        }
      })
    
      return result
    }

    3、wepy.js

    'use strict'
    
    import wepy from 'wepy'
    import axios from './axios'
    import events from './events'
    
    export function $modal (title, content, showCancel = false) {
      return wepy.showModal({
        title,
        content,
        showCancel
      }).then(data => data.confirm)
    }
    
    export function $loading (title, mask = true) {
      if (title) {
        return wepy.showLoading({ title, mask })
      } else {
        return wepy.hideLoading()
      }
    }
    
    export const $http = axios
    
    export function $navigateTo (key, url) {
      if (key && !url) {
        url = key
        key = undefined
      }
    
      return wepy.navigateTo({ url }).then(() => key && new Promise(resolve => events.once(key, resolve)))
    }
    
    export function $navigateBack (key, ...args) {
      if (key) {
        events.emit(key, ...args)
      }
    
      return wepy.navigateBack()
    }
    
    Object.assign(wepy.component.prototype, {
      $modal,
      $loading,
      $http,
      $navigateTo,
      $navigateBack,
      $globalEvents: events
    })
  • 相关阅读:
    数组、List和ArrayList的区别
    Spring 学习笔记(一)——Spring 基本概念和体系概览
    解压大文件提示C盘空间不够的问题
    在Struts2 Action中快速简便的访问Request、Session等变量
    Java 以及JEE环境快速搭建
    JAVA对象布局之对象头(Object Header)
    Docker之两小时入门
    Java创建多线程的几种方式
    JAVA并发之加锁导致的活跃性问题
    JAVA并发之多线程引发的问题剖析以及如何保证线程安全
  • 原文地址:https://www.cnblogs.com/quejuwen/p/9178802.html
Copyright © 2011-2022 走看看