mpvue开发小程序会遇到许多问题,下面为大家解答如何解决。
项目结构
|---build
|---pages.js文件目录
|---src
|---component子组件
|---pages
|---业务页面
|---store,vuex储存
|---utils
|---请求api.js
|---format格式化插件,小程序中不能使用vue自带的格式化只能手动修改后台返回的时间戳,价格,订单状态等
|---request封装fly进行请求响应拦截
|---wx.js
环境及依赖
less-loader,提供嵌套样式,谁用谁知道
flyio提供请求便于请求模块的快速转化h5(flyio提供了h5,小程序的请求封装,参考mpvue中提供的一个例子写拦截器,用于处理后台返回未登录状态跳转页面),自己在小程序中wx.request封装也一样,只是转h5又需要做一个axios。
腾讯地图qqMap提供的reverseGeocoder(wx.getLocation只提供了经纬度定位,而产品需要的是确认定位后获取城市,进行同城商品检索)
阿里云oss对象储存处理文件上传,比较意外的是腾讯对阿里云的oss域名前缀进行了封禁后台不能配置,解决方案是让后台将该域名进行服务器域名代理。提一嘴,最开始用七牛云没有出现这个问题,嫌麻烦的可以用七牛
富文本处理,使用mpvue例子中提供的mpvue-wxparse,当然你也可以自己写
小程序开发过程遇到的问题
转h5实践
/*webpack.base.conf*/
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'wx': resolve('src/utils/wxSimulate.js')
}
},
/*模拟wx的自己写的wxsimilate.js*/
import router from '../router'
import Vue from 'vue'
import { ConfirmPlugin, ToastPlugin } from 'vux'
Vue.use(ConfirmPlugin)
Vue.use(ToastPlugin)
const wx = {
navigateTo ({ url }) {
console.log(url)
router.push({ path: url })
},
redirectTo ({url}) {
router.replace({ path: url })
},
navigateBack () {
router.go(-1)
},
showToast ({title}) {
Vue.$vux.toast.show({
// 组件除show外的属性
text: title
})
},
// 模态框显示
showModal ({title, content, success}) {
Vue.$vux.confirm.show({
title,
content,
// 组件除show外的属性
onConfirm () {
success && success({confirm: true, cancel: false})
},
onCancel () {
success && success({confirm: false, cancel: true})
}
})
}
}
window.wx = wx
export default wx
/*mpvue*/
<style scoped lang="less">
#index {padding:100rpx 20rpx 110rpx;}
/*vue*/
<style scoped lang="less">
@charset "utf-8";
@rpx: 117.188rem;
#index {padding:100/@rpx 20/@rpx 110/@rpx;}
最后感谢美团的各位大佬,让我这个菜鸡舒舒服服的开发了小程序、业绩也达标了,对文章有问题的大佬请指正,希望大家都能顺顺利利开开心心的开发小程序,最近看到京东出了个taro又准备开启新的填坑之路啦。
