• mpvue进阶


    mpvue进阶
    目前的开发挑战
    多端开发工作量大, 端越多开发工作量越大
    高昂的学习成本, 端越多学习成本越高
    解决方案:Vue + 多端小程序 = mpvue2.0
    介绍
    mpvue是美团开源的小程序开发框架
    彻底的组件化开发能力 + 完整的VueJs开发体验 + 生态支持
    mpvue2.0支持微信、支付宝、百度和头条小程序 【一套代码, 多端适配】
    技术栈
    01.png
    技术选型
    02.png
    原生小程序缺点
    03.png
    mpvue与原生的对比
    04.png
    脚手架初始化mpvue项目
    
    $ vue init mpvue/mpvue-quickstart my-project
    
    $ cd my-project
    
    $ cnpm i
    
    $ npm run dev
    mpvue原理
    mpvue保留了vue.runtime核心方法, 无缝继承了Vue.js的基础能力
    mpvue-template-compiler, mpvue-loader提供了将vue的模板语法转换到小程序的wxml语法的能力
    修改了vue的建构配置, 使之构建出符合小程序项目结构的代码格式: json/wxml/wxss/js文件
    mpvue生命周期
    05.jpg
    集成scss
    
    cnpm i -D sass-loader node-sass
    集成组件库(以vant-weapp为例)
    
    cnpm i vant-weapp -S --production
    
    // 修改构建配置 webpack.base.config.js
    
    if (/^wx$/.test(PLATFORM)) {
    
    baseWebpackConfig = merge(baseWebpackConfig, {
    
    plugins: [
    
    new CopyWebpackPlugin([{
    
    from: resolve(‘node_modules/vant-weapp/dist’),
    
    to: resolve(‘dist/wx/vant-weapp/dist’),
    
    ignore: [‘.*’]
    
    }])
    
    ]
    
    })
    
    }
    集成mpvue-router-patch
    
    cnpm i -S mpvue-router-patch
    
    // main.js配置
    
    import MpvueRouterPatch from ‘mpvue-router-patch’
    
    Vue.use(MpvueRouterPatch)
    集成flyio
    
    cnpm i -S flyio
    
    // 初始化flyio对象
    
    function createFly() {
    
    if (mpvuePlatform === ‘wx’) {
    
    const Fly = require(‘flyio/dist/npm/wx’)
    
    return new Fly()
    
    } else {
    
    return null
    
    }
    
    }
    

    
    // 处理GET请求
    
    export function get(url, params = {}) {
    
    const fly = createFly()
    
    if (fly) {
    
    return new Promise((resolve, reject) => {
    
    fly.get(url, params).then(response => {
    
    console.log(response)
    
    resolve(response)
    
    }).catch(err => {
    
    console.log(err)
    
    handleError(err)
    
    reject(err)
    
    })
    
    })
    
    }
    
    }
    

    
    // 处理POST请求
    
    export function post(url, params = {}) {
    
    const fly = createFly()
    
    if (fly) {
    
    return new Promise((resolve, reject) => {
    
    fly.post(url, params).then(response => {
    
    console.log(response)
    
    resolve(response)
    
    }).catch(err => {
    
    console.log(err)
    
    handleError(err)
    
    reject(err)
    
    })
    
    })
    
    }
    
    }

  • 相关阅读:
    props 后面的数据流是什么?
    容器运行时与k8s概述
    优思学院和优思教育有关系吗?
    Matlab图像处理-模式识别
    .Net之延迟队列
    23 种设计模式的通俗解释,虽然有点污,但是很正点
    公网访问全能知识库工具AFFINE,Notion的免费开源替代
    迅为RK3399开发板创建android工程
    详解DETR (End-to-End Object Detection with Transformers)
    用Java方法来打印从1到N的阶乘的和
  • 原文地址:https://blog.csdn.net/longxiaobao123/article/details/125438481