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
    })
  • 相关阅读:
    【转载】天才与柱子
    Windows Phone 7 隔离存储空间资源管理器
    (收藏)让你平步青云的十个谈话技巧
    (收藏)《博客园精华集》设计模式分册
    (收藏)C#开源资源大汇总
    (收藏)生活物语
    (收藏)C# ORM/持久层框架
    (收藏)《博客园精华集》AJAX与ASP.NET AJAX部分
    小型项目总结之五
    VS 打包完美解决方案
  • 原文地址:https://www.cnblogs.com/quejuwen/p/9178802.html
Copyright © 2011-2022 走看看