最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 使用mpx开发外卖小程序

    正文概述 掘金(前端精髓)   2021-01-10   391

    框架简介

    Mpx 是滴滴开源的一款致力于提高小程序开发体验的增强型小程序框架,通过 Mpx ,我们能够最先进的 web 开发体验 (Vue + Webpack) 来开发生产性能深度优化的小程序,Mpx 具有以下一些优秀特性:

    1. 数据响应特性 (watch/computed)
    2. 增强的模板语法(动态组件/样式绑定/类名绑定/内联事件函数/双向绑定等)
    3. 深度性能优化(原生自定义组件/基于依赖收集和数据变化的 setData)
    4. Webpack 编译 ( npm/循环依赖/Babel/ESLint/css 预编译/代码优化等)
    5. 单文件组件开发
    6. 状态管理 (Vuex 规范/多实例/可合并)
    7. 跨团队合作 (packages)
    8. 逻辑复用能力 (mixins)
    9. 脚手架支持
    10. 小程序自身规范的完全支持
    11. 支付宝小程序的支持
    <template>
      <!--动态样式-->
      <view class="container" wx:style="{{dynamicStyle}}">
        <!--数据绑定-->
        <view class="title">{{title}}</view>
        <!--计算属性数据绑定-->
        <view class="title">{{reversedTitle}}</view>
        <view class="list">
          <!--循环渲染,动态类名,事件处理内联传参-->
          <view wx:for="{{list}}" wx:key="id" class="list-item" wx:class="{{ {active:item.active} }}"
                bindtap="handleTap(index)">
            <view>{{item.content}}</view>
            <!--循环内部双向数据绑定-->
            <input type="text" wx:model="{{list[index].content}}"/>
          </view>
        </view>
        <!--自定义组件获取实例,双向绑定,自定义双向绑定属性及事件-->
        <custom-input wx:ref="ci" wx:model="{{customInfo}}" wx:model-prop="info" wx:model-event="change"/>
        <!--动态组件,is传入组件名字符串,可使用的组件需要在json中注册,全局注册也生效-->
        <component is="{{current}}"></component>
        <!--显示/隐藏dom-->
        <view class="bottom" wx:show="{{showBottom}}">
          <!--模板条件编译,__mpx_mode__为框架注入的环境变量,条件判断为false的模板不会生成到dist-->
          <view wx:if="{{__mpx_mode__ === 'wx'}}">wx env</view>
          <view wx:if="{{__mpx_mode__ === 'ali'}}">ali env</view>
        </view>
      </view>
    </template>
    
    <script>
      import { createPage } from '@mpxjs/core'
    
      createPage({
        data: {
          // 动态样式和类名也可以使用computed返回
          dynamicStyle: {
            fontSize: '16px',
            color: 'red'
          },
          title: 'hello world',
          list: [
            {
              content: '全军出击',
              id: 0,
              active: false
            },
            {
              content: '猥琐发育,别浪',
              id: 1,
              active: false
            }
          ],
          customInfo: {
            title: 'test',
            content: 'test content'
          },
          current: 'com-a',
          showBottom: false
        },
        computed: {
          reversedTitle () {
            return this.title.split('').reverse().join('')
          }
        },
        watch: {
          title: {
            handler (val, oldVal) {
              console.log(val, oldVal)
            },
            immediate: true
          }
        },
        handleTap (index) {
          // 处理函数直接通过参数获取当前点击的index,清晰简洁
          this.list[index].active = !this.list[index].active
        },
        onReady () {
          setTimeout(() => {
            // 更新数据,同时关联的计算属性reversedTitle也会更新
            this.title = '你好,世界'
            // 此时动态组件会从com-a切换为com-b
            this.current = 'com-b'
          }, 1000)
        }
      })
    </script>
    
    <script type="application/json">
      {
        "usingComponents": {
          "custom-input": "../components/custom-input",
          "com-a": "../components/com-a",
          "com-b": "../components/com-b"
        }
      }
    </script>
    
    <style lang="stylus">
      .container
        position absolute
        width 100%
    </style>
    

    安装使用

    # 安装mpx命令行工具
    npm i -g @mpxjs/cli
    
    # 初始化项目
    mpx init <project-name>
    
    # 进入项目目录
    cd <project-name>
    
    # 安装依赖
    npm i
    
    # development
    npm run watch
    
    # production
    npm run build -p
    Copy
    

    简单示例

    下面是使用mpx框架开发的外卖小程序页面,项目地址:github

    使用mpx开发外卖小程序 使用mpx开发外卖小程序

    项目已经兼容微信小程序,支付宝小程序,web页面。项目包含两个页面,一个是首页点餐页面,一个是商品详情页面。主要内容是动态组件component-is 特性,watch,computed,创建 store 容器管理状态,等 mpx 增强的 API。

    使用感受

    在使用mpx能感受到像拥有vue语法一样的特性,包括文件的结构,一些增强的API语法和响应式数据。框架是基于微信语法可以直接转换成其他类型的小程序。所以只要会微信原生小程序开发就能直接上手了。

    mpx是如何跨端的呢?它可以把微信的指令转换为其他小程序的指令,如果遇到跨端之间无法兼容的属性怎么办?这个时候我们需要添加环境判断,来针对指定的端进行语法输出。如果是不做跨端小程序只做微信小程序可以用吗?其实也是可以使用,因为增强的API可以带来更好的开发体验,比如经常使用的watch,computed特性。


    起源地下载网 » 使用mpx开发外卖小程序

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元