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

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [