微信小程序 WePY 2 框架入门教程

摘要:
WePY2的设计思想是非侵入式设计。WePY2在小程序上运行。它封装并优化了小程序的原始功能,不会对原始小程序框架产生任何更改或影响。因此,WePY2完全基于applet的本地组件实现,不支持applet基本库˂1.6.3的版本。将实例化过程置于生命周期事件中。在WePY2中,VueObserver用于实现数据绑定。告别$apply()。因此,如果开发者需要维护WePY1.7。x和WePY2.0。同时,他们应该考虑在当前项目中安装CLI,而不是全局安装。

WePY 2 的设计思想

  1. 非侵入式设计 WePY 2 运行于小程序之上,是对小程序原有能力的封装和优化,并不会对原有小程序框架有任何改动或者影响。

  2. 兼容原生代码 能够兼容原生代码,即部分页面为原生,部分页面为 WePY。同时做到无需任何改动即可引用现有原生开发的小程序组件。

  3. 基于小程序原生组件实现组件化开发 小程序原生组件在性能上相较之前有了很大的提升。因此 WePY 2 完全基于小程序原生组件实现,不支持小程序基础库 < 1.6.3 的版本。

  4. 基于 Vue Observer 实现数据绑定 数据绑定基于 Vue Observer 实现,同时为其定制小程序特有的优化。

  5. 更优的可扩展性 对于 core 库提供 mixin、hooks、use 等方式进行开发扩展,对于 cli 编译工具提供更强大的插件机制方便开发者可以侵入到编译的任何一个阶段进行个性化定制的编译。

WePY 2 VS WePY 1

WePY 2 并不是基于 WePY 1 的升级版,而是完全重新开发的全新版本,因此实现原理完全不一样,比较难实现完全的向下兼容。主要体现在以下几点差异上:

  1. 入口申请调整,WePY 1 使用类的继承方式 export default class MyPage extends wepy.page {} 在 WePY 2 中调整为 wepy.page({})。将实例化的过程放在生命周期事件中。

  2. 数据绑定机制调整,WePY 1 使用脏检查进行数据绑定,却让开发者不知道使用时候去调用 $apply() 方法。在 WePY 2 中使用了 Vue Observer 实现数据绑定,告别 $apply()

  3. 基于原生组件,WePY 1 是通过文件编译创建的静态组件在动态循环遍历时会出现一些问题,WePY 2 直接基于的小程序原生的组件去实现,避免了这一类问题。

  4. Vue 模板语法,WePY 2 中推荐使用 html 代替 wxml 来写 template,支持除 filter 之外的所有 Vue 模板语法。

  5. 编译方式改变,WePY 2 从基于文件编译调整为基于入口编译,因此对于图片等静态资源需要指定 static 选项 。

WePY 2 项目的创建与使用

$ npm install @wepy/cli -g # 全局安装 WePY CLI 工具

全局安装 CLI 会覆盖老版本的 CLI 工具,新版本的 CLI 无法编译老版本的代码。因此,如果需要同时维护 WePY 1.7.x 和 WePY 2.0.x 的开发者,应当考虑在当前项目安装 CLI,而非全局安装。可以直接使用 1.7.x 的 CLI 去初始化 2.0.x 的项目,如下:

$ wepy init standard#2.0.x myproj

在开发目录中生成Demo开发项目:

$ wepy init standard myproj # 使用 standard 模板初始化项目

过程中暂时可以一路回车,后续如果遇到要做具体的项目的时候,可以根据项目需要填写。

切换至项目目录:

$ cd myproject # 进入到项目目录

安装依赖:

$ npm install # 安装项目依赖包

安装完成之后可以看见,文件里面多出了依赖文件夹。

打包编译:

$ wepy build

把wepy开发的代码wpy文件编译成小程序认识的文件,如下图:

微信小程序 WePY 2 框架入门教程第1张

开启实时编译:

$ npm run dev # 监听并且编译项目
# 或者
$ wepy build --watch

可以看到项目中多了一个 weapp目录,然后 在小程序开发工具中打开 weapp 目录,就可以看到,刚才创建的项目。

WePY 2 项目的目录结构

微信小程序 WePY 2 框架入门教程第2张

 

更多功能及特性,请参考官方文档:https://wepyjs.github.io/wepy-docs/2.x/#/

微信小程序WePY框架开发资源汇总:awesome-wepy

免责声明:文章转载自《微信小程序 WePY 2 框架入门教程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇两种方法上传本地文件到github表格联动的实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

UNIAPP之微信小程序转H5

开始 最近有个需求,需要将微信小程序中一些页面和功能改成h5,这次功能开发的时间有点紧,而且重新写一套有点来不及。考虑到微信小程序与uni-app有着一些共通之处,所以打算直接转成uni-app。uni-app官网上也有从微信小程序项目转uni-app的教程:https://github.com/zhangdaren/miniprogram-to-uni...

小程序 版本自动更新的实现

涉及到微信小程序开发的小伙伴们,相信一定会遇到新版本发布后,旧版本无法自动更新的困扰. 我之前进行开发的时候: - 首先是因为在今年的 3、4月份进行小程序的初次接触; - 但是网上也没搜到相关的解决方案; - 最笨的方法就是,删除小程序后再重新搜索打开就好; - 然后,记不清从哪里看到的信息; - 大概意思是:小程序的更新机制会自动检测,根据...

(其他)小程序介绍和开发

转自CSDN: 本文会从小程序前端开发,小程序服务端开发及小程序的发布与审核三个方面来阐述小程序的开发流程。 一、小程序前端介绍及开发 小程序的开发涉及到前端开发和后端开发,前端指的是在手机上能看到的部分,主要负责页面的布局排版及展示,后端提供数据和业务处理能力,指的是我们写给前端调用的API接口。 注册账号 小程序的注册比较简单,首先,登录微信公众号平台...

小程序框架之视图层 View

(1)视图层View 框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。 将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。 WXML(WeiXin Markup language) 用于描述页面的结构。 WXS(WeiXin Script) 是小程序的一套脚本语言,结合WXML,可以构建出页面的结构。 WXSS(WeiXin Sty...

微信小程序地图控件篇 自定义图标被地图覆盖的问题

今天在做微信小程序的时候遇到这个这样的问题  需要在地图上加个一个自定义的图标控件 类似这样的    刚开始的时候怎图片一直会被地图组件覆盖  ,要怎么解决这个问题  我去翻了下小程序的文档 有个cover-view以及cover-image组件是可以覆盖在map组件之上  只要把view换成 cover-view就解决啦   希望对各位开发的同学有帮助...

使用云开发数据库构建更生动的小程序

长连接服务被广泛应用在消息提醒、即时通讯、推送、直播弹幕、游戏等场景。本篇文章将介绍云开发数据库的长连接服务 - 实时数据推送,使用它来构建更生动的小程序。 什么是实时数据推送 通过云开发数据库的实时数据推送能力,小程序端可实时监听数据库变更,即它支持根据开发者给定的查询语句进行监听,每当查询语句的结果发生变化时,小程序端就会收到包含更新内容的推送,并对实...