MPX 小程序框架 - Tracy 小笔记

2023-11-22 06:10
文章标签 程序 笔记 框架 tracy mpx

本文主要是介绍MPX 小程序框架 - Tracy 小笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第1章Mpx课程导学

1-1 mpx介绍

MPX:全面拥抱原生的框架

官方文档:Introduction · mpx文档

基于 Mobo 实现高效的数据相应,基于 webpack 实现基于依赖手机的优化编译

1-2开始

  1. 下载开发者工具
  2. 根据 mpx 官方文档安装 mpx
  3. 根据文档初始化项目,可以开发微信小程序,支付宝小程序,QQ小程序等等
  4. 进入目录安装 依赖
  5. # development
    npm run watch

    # production
    npm run build
  6. 打开开发者工具,导入dist/wx,填写 appID
    同时  appID 也要填写到项目 project.config.json 中的 appid 中
  7. 开发者工具左上角 :模拟器和调试器我们总用,编译器是可以看的但是不能再这里改,因为这是我们框架生成的原生的代码
  8. 打开 vs-code
  9. 下载相关插件 在mpx 文档的单位件-编辑器、IDE 配置中
    vscode 添加插件 mpx、minapp、Vetur、Color Highlight、language-stylus等

1-3 效果演示

  1. 开 mpx 官方github: github.com/didi/mpx
  2. donwload 下来
  3. 项目在examples 文件夹中
  4. 试跑 examples/todoMVC 项目
  5. npm install
  6. npm run build,  这个命令能生成 dist 文件夹中的文件
  7. 微信开发者 工具导入该项目
  8. src/app.mpx 小程序入口文件
  9. <script name="application/json" mode="ali" > 支付宝
    <script name="application/json" mode="wx" > 微信
    根据微信小程序平台的不同,进行的差异化的编译(多肽协议)

    mpx 不仅支持块级别的条件协议,而且支持文件级别,代码行级别的条件协议
  10. mpx 一个页面一个文件,而不是像原生一样一个页面还要创建文件夹对应4个文件

第2章Mpx能力增强

2-1 数据响应

可以像 vue 一样设置 data, computed, load(),watch等

2-2 状态管理

类似于 vuex 的状态管理,来实现组件间通讯

 src/store/index.js

查看文档:数据管理 · mpx文档

事件绑定需要阅读原生的小程序开发文档:事件 | 微信开放文档

state: 状态

getters: 获取特定状态的 state,比如说对某state 进行过滤或者计数等

mutations: 同步更改 state

actions: 异步方法,再通过 commit mutation 来更改 state

子模块和多实例

  • 当应用变得非常复杂时,store 对象就有可能变得相当臃肿
  • mpx内置store 允许我们将 store 分割成模块 (类似于 vue )
  • 允许创建多实例,各store实例彼此互相独立,状态互不干扰 (更推荐这个)

2-3 模板增强

双向绑定

<input type="text" wx:model="{{value}}" /><view>{{value}}</view>data:{value:""}

内联传参

<view wx:for="listData"><button bindtap="clickButton(item)">第{{index}}项</button></view>method:{clickButton(item){console.log(item);}}

动态组件

<component is="{{componentName}}"></component>data:{
componentName:"test1"
}<script type="application/json">
{"usingComponents":{"test1":"../components/test1"}
}
</script>这里还要创建一个 text1.mpx 组件

样式类名绑定

template增强特性 · mpx文档

2-4样式及json增强

预处理器 - Sass / Stylus / Less

默认是 stylus 如果想用 less 需要安装 (-D : 开发时依赖)

npm i less less-loader -D

Rpx转换(750rpx 手机屏幕宽度)

让css 里写 px 的地方,换算成 rpx 

也可以在 comments 里声明一个注释,写了这个注释的 css px 就不会被转换

build/webpack.conf.js 文件中

Json 增强

基于webpack依赖收集的按需构建,我们创建组件之后只有真正引用了,才会打包到项目中,之前原生小程序会把所有组件都引入

增强npm支持,更符合npm正常使用体验: 用户只要把包名直接写上

解决JSON作为配置文件的不足:支持注释、动态生成 

<script type="application/json"> 这个 json 文件里代码格式特别严格,注释都不能写

<script name="json"> 可以换成这种方式,这里写的就相当于正常的js 代码,因此可以写一些注释

实现 微信 打包 test 1组件,支付宝等其他小程序打包 test2 组件

第3章Mpx进阶使用

3-1优化结构及跨平台

拆分组件组件通讯:

跨平台

一套代码打包成不同平台的小程序:

package.json 中

npm run watch:cross 

dist/ali 文件夹就是支付宝小程序

dist/swan 文件夹是百度小程序

3-2组件库及资源处理

使用第三方组件库

want weapp 组件库

npm i vant-weapp

不要用如下的方式引入,这样会把所有组件都引入进去

我们在 script 中按需引入即可

组件文件可以在 node_modules/want-weapp 中看到

Vant Weapp - 轻量、可靠的小程序 UI 组件库

动态引入本地资源:图片资源

基础应用

图片路径如果是一个变量该如何处理?比如一开始显示图片1.png 间隔几秒显示 2.png

放大1:需要先 import 进来图片

方法2: require

这种方法不太好的地方是,它会自动打包所有 image 文件夹下的文件,并不是按需引用

这篇关于MPX 小程序框架 - Tracy 小笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/408067

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker