小程序和vue语法对比_React语法开发微信小程序 Demo

2fb9fddee49daf93d55db9b2f3d59869.png

前言

从16年微信小程序内测的时候至今,微信小程序用实践证明了自己的创新和价值,微信小程序的规则也在社区的影响下变得更加完善。

但是不得不说,用惯了VSCode,官方的开发工具确实不怎么好用。之前没有接触过小程序开发,这次用了一两个星期的时间,大致熟悉了开发模式和流行的开发框架:Vue规范的uni-app、类Vue规范的wepy、近Vue写法的mpvue、O2实验室遵循React规范的Taro。

因为个人比较熟悉React和TypeScript,最后选择了Taro。不得不说使用框架开发小程序真的太爽了,感谢下Taro的开发者们。他能解决以下几个问题,编辑器、语言、调试、UI:

  1. 能使用VSCode编辑器开发,不用去适应小程序的编辑器,配合格式化插件Prettier,能有效控制团队代码规范。以及各种其他插件,各种方便。偷懒是程序员进步的根本动力。
  2. React+TypeScript能大大的提高开发效率和降低Bug率。真的是大大的提高,能使用jsx写模版和TypeScript的智能提示。如果你熟悉React的话,能轻松无痛过渡到小程序开发。
  3. 调试,还是要吐槽一下原生的开发工具,UI调试的时候真的太难用了:元素选择慢;直接写css没有代码提示;而且无法查看伪元素(after、before)但是css中是可以写的。平时用惯了Chrome DevTools,对这种降低效率的工具有点无法接受。好在Taro可以编译H5和微信小程序,这样可以同时开启微信小程序调试和Chrome DevTools,两端一起预览,虽然会有一些差别,但是能及时发现以做好兼容小程序。
  4. UI框架,其他的UI框架没有怎么了解,主要说一些Taro-UI,他包含了大部分交互所需组件。通过覆盖scss,基本上可以只保留交互效果,完全定制属于自己的主题,除了官方说的定制方法,完全可以自己定制到 类名 级别,原理就是选择器优先级覆盖,但是会有一些问题,比如升级UI框架版本的话,可能有影响。同时因为微信组件样式作用域的关系,覆盖代码要放在pages层级。

Demo

Taro 框架(v1.2.17),React+TypeScript 语法,Mobx 管理数据,Taro UI 框架。

Mobx 管理数据,这是 React 流行的数据管理方案之一,简单、可扩展的状态管理。需要注意是Taro使用的是 Mobx 4 版本,在对象动态写入等地方有些坑。
同时项目使用 TypeScript 。可能大部分前端开发人员没有接触过强类型语言,自从我使用之后就放不下了,也一直在团队中安利。TypeScript 的学习难度不算太高,但是收获绝对很值。

Taro 框架支持TypeScript,所以在调用wx的api的时候会有类型提示,接口规范也基本支持Promise方式。可能社区用TypeScript+Mobx开发的还是比较少,所以有一些框架上的问题,项目过程中也提了几个issue和PR。将demo分享出来也是希望更多的人在选择的时候有个参考,同时也能对社区有些贡献。

leidenglai/weapp-taro-typescript​github.com
b6635f880fa5f712b68a0eea8f2334cc.png

目录结构

— config/  // 构建配置,Taro默认生成
— dist/ // 小程序构建缓存和输出目录
— src/            // 项目文件assets/ // 所有资源文件 如图片、字体、样式文件components/// 组件目录interface/// 公共接口libs // 手动导入的库,此目录不会进行代码检查和压缩编译pages/ // 项目页面目录,对应微信小程序的pages		services/// 与后端交互的接口请求文件stores/  // mobx数据管理utils/  // 一些中间件、插件方法等app.scss// 项目的配置app.tsx// 应用入口
- .eslintrc.json  // eslint配置
- .stylelintrc.json  // stylelint配置
- tsconfig.json   // ts语言的配置
— package.json  // 项目描述文件
— README.md     // 项目文档
- project.config.json // 小程序配置文件


Taro 框架

Taro 介绍 · Taro

Taro是一套遵循React语法规范的多端开发解决方案。现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。
使用Taro,我们可以只书写一套代码,再通过Taro的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动小程序、H5、React-Native 等)运行的代码。

开发环境


进入项目根目录,安装依赖包:

## 安装依赖包
yarn## 小程序调试模式
yarn dev:weapp## h5
yarn dev:h5

开发时可以先在 h5 模式下完成大部分业务逻辑和 UI 调试,然后同时开启小程序和 H5 模式,对照查看效果,调试页面。

构建发布和问题多看看Taro官方文档,有问题上github看看issue。

注意事项

  1. Taro只是React语法糖,并不是真正的React框架
Taro 的生命周期/路由 和setState在小程序端其实是包装成 React API 的一层语法糖,我们把这层包装称之为 Taro 运行时框架。几乎所有 Taro 提供的 API 和语法糖最终都是通过小程序本身提供的 API 实现的。

2. 开发之前一定要多看几遍Taro官方文档的注意事项和进阶指南

3. Taro官方对Mobx的引入的例子漏了一点。其实多页面的应用,只需在入口文件的render函数导入全部store即可,不需要引入Page组件。这样在全局所有页面中都可以注入store。

const store = {commonStore: new CommonStore(),userStore: new UserStore()
}class App extends Component {// ...render () {return <Provider store={store} />}
}

4. (自1.3.6后已支持)框架使用的是React语法糖,所有关于组件的props,使用的是小程序的Component构造器properties属性,但是properties是Object类型,所以组件的props不能是Mobx的Observable,否则会被转化为普通的对象或者值。解决方法是传入关键信息如key字段,然后在子组件中注入Store,获取Observable数据。


资源

  • 项目配置 解释 package.json 文件 — JavaScript 标准参考教程(alpha)
  • Taro 中文文档:Taro 介绍 · Taro
    Taro UI:Taro UI | O2Team
  • React 官方中文文档:React 是一个用于构建用户界面的 JavaScript 库
  • Mobx 中文文档:MobX 介绍 · MobX 中文文档
  • TypeScript 中文文档:文档简介 · TypeScript中文网 · TypeScript——JavaScript的超集
  • Lodash.js 中文文档: https://www.html.cn/doc/lodash/
  • scss:Sass 参考手册 | Sass 中文文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cookie 在线人数列表_前端学习随笔2 在线简历

​一 心得体会今天的任务是利用HTML制作一份在线简历&#xff0c;先不考虑样式&#xff0c;只从结构和语义化方面着手。对于已经有了前端b编程经验的我来说挺简单的&#xff0c;但是我还是当作我是一个刚入门的菜鸟&#xff0c;在学习过程中发现其实还有很多基础知识被我忽略了…

打开黑色_垃圾桶里的黑色塑料袋,打开一看,倒吸一口气!

江山多娇我和我的家乡 大直播明天很热注意防晒萍乡天气18—32℃晴来源 | 都市现场(jxtvdsxc)综合安徽公共频道非经允许请勿转载 如删除来源必究5月19号下午&#xff0c;在合肥市春晖园小区内&#xff0c;有两位老人竟偶然从小区垃圾桶内翻出了六万多元的现金。这是怎么回事…

根据父类id查询所有的父级_031、组函数和子查询

1.组函数(聚合函数)&#xff08;1&#xff09;组函数介绍组函数操作行集&#xff0c;给出每组的结果。组函数不象单行函数&#xff0c;组函数对行的集合进行操作&#xff0c; 对每组给出一个结果。这些集合可能是整个表或者是表分成的组。组函数与单行函数区别单行函数对查询到…

搜索文献_如何有效地搜索及阅读文献

解读论文写作与发表策略助您成功发表关注文献的阅读与科研息息相关&#xff0c;不做好文献调研&#xff0c;就无法真正开展课题&#xff0c;也无法掌握当前最新的研究进展&#xff0c;创新也就无从谈起。但是&#xff0c;相信很多同学&#xff0c;特别是刚读研的同学&#xff0…

显卡直通_英伟达RTX 30系显卡发布:性价比打哭2080Ti

9 月 2 日消息&#xff0c;英伟达在今天凌晨正式发布了 GeForce RTX 30 系列显卡&#xff0c;首发型号包括 RTX 3070、RTX 3080 及 RTX 3090 共三款。新一代 RTX 30 系列显卡基于三星 8nm 制程工艺打造&#xff0c;采用了全新的安培(AMPERE)架构&#xff0c;搭载第二代 RT Core…

学计算机应用用画画吗,宝宝学画画

宝宝学画画电脑版是专为儿童设计的画图软件&#xff0c;是一款界面友好的触摸式平台&#xff0c;宝宝学画画功能非常强大&#xff0c;界面简洁明晰、操作方便快捷&#xff0c;设计得很人性化。宝宝学画画为儿童用户提供友好并富有创意的使用环境&#xff0c;让他们感受用计算机…

计算机网络电子邮件的基本格式,怎样的格式才是正确的电子邮件格式?

楼主&#xff1a;你好&#xff0c;很高兴为你解答。电子邮件(E-mail)是建立在计算机网络上的一种通信形式。计算机用户可以利用网络传递电子邮件&#xff0c;实现相互通信。电子邮件可在计算机局域网上进行&#xff0c;也可在计算机广域网上进行。进行电子邮件通信&#xff0c;…

华为tsm_台积电:如果不能向华为销售芯片,其他订单可快速取代华为空缺

6月9日消息&#xff0c;据国外媒体报道&#xff0c;台积电周二表示&#xff0c;如果美国禁令禁止公司向华为销售芯片&#xff0c;其他订单可以很快取代华为空缺。台积电在年度股东会上&#xff0c;台积电董事长刘德音表示&#xff0c;我们希望(禁止公司向华为销售芯片)不要发生…

戴尔便携式计算机无法开机,戴尔笔记本电脑开不了机如何解决【解决方法】

生活在互联时代下&#xff0c;我们对笔记本的需求是无处不在的&#xff0c;不管是上班族还是学生党&#xff0c;使用笔记本办公和学习给我们的生活带来很大的便捷。但使用的过程中&#xff0c;总有可能会遇到无法预料的问题。比方说 笔记本电脑 无法开机的问题&#xff0c;当遇…

mf253s移动版变全网通_中国电信发布5G全网通终端需求白皮书v2.0

2019-11-07 10:56 2019年10月31日&#xff0c;中国5G正式商用&#xff0c;标志着5G发展已进入快车道&#xff0c;整个社会各行各业对5G热情高涨&#xff0c;业界纷纷增加5G投入&#xff0c;5G终端的发展进程必将加快&#xff0c;市场空间巨大&#xff0c;潜力无限。 为更好地引…

质量码_在验证牛顿第二定律实验为什么要保证槽码质量m远远小于小车质量M?...

在验证牛顿第二定律实验中&#xff0c;要保证槽码总质量m远远小于小车的质量M&#xff0c;为什么要这样&#xff1f;在“验证牛顿第二定律”实验中要求测量物体所受合外力和物体的总质量,而且对这两个物理量越容易测量越好.通过“等效法”的阐述我们已经知道,绳子对小车的拉力即…

拆分列成多行_把订单按货品拆分成多行(上)

办公的小伙伴们&#xff0c;今天小编来和大家分享。如何将一个单元格中有多行数据拆分成多行。看下图&#xff1a;要把订单按货品拆分成多行明细。下面给出几种不同的方法。一一一一一一一一一一一一一一一一一一一一一一方法一&#xff1a;借word来拆分内容Step1&#xff1a;把…

遍历对象属性_细说JS遍历对象属性的N种方法

本人详细介绍了JS遍历对象N种方法&#xff0c;欢迎关注收藏。遍历对象属性有五种方法&#xff0c;下图为一个场景对比图。可以注意到两点&#xff1a;只有for ... in 才可以遍历原型链属性&#xff0c;且只能遍历可枚举属性。Object.getOwnPropertyNames Object.getOwnPropert…

计算机考试减法公式,Excel减法函数公式

根据网友提出的“错位减法的Excel减法公式”等问题&#xff0c;Excel办公网整理了一些著名网站上关于“错位减法的Excel减法公式”的信息标题: 求等比数列前n项之和的方法(数学)公式法和位错减法最好有一个例子参考文献: 常用方法包括:一. 公式法: 采用等差数列和等比数列求和的…

计算机系统账户被锁定,帐号已经被系统锁定是什么意思

2007-10-09我的帐号锁定了&#xff0c;我已经把那个解锁的资料用邮件发去去了&#xff0c;怎么不回呀&#xff0c;不是说24小时吗尊敬的客户:您好&#xff01;5173客户服务010很高兴为您服务&#xff01;请您查看下您的邮件是否已经成功提交&#xff0c;您的信息有没有填写齐全…

计算机模拟量与数字量的转换,在S7-1200 CPU中,如何实现模拟量数值与工程量数值之间的转换?...

在S7-1200 CPU中&#xff0c;如何实现模拟量数值与工程量数值之间的转换&#xff1f;本例程中的程序使用类似于STEP7 中提供的FC105/106.用户可以使用它们将模拟量输入/输出的整数数值与工程量单位之间进行转换。用户需要将此例程安装到程序库中。步骤1&#xff1a;在西门子网站…

计算机硬盘坏道有什么特点,硬盘坏道对电脑会造成什么影响

现在很多人还不知道什么是硬盘坏道&#xff0c;导致很多人不去重视。那今天来了解下什么是硬盘坏道&#xff0c;对电脑有什么影响!前方高能&#xff0c;请系好安全带!影响一&#xff1a;硬盘坏道后&#xff0c;常见的就是打开、运行或者拷贝某个文件时会出现卡顿&#xff0c;操…

金坛区实验幼儿园服务器不稳定,2019年金坛城区部分公办幼儿园服务区划分方案(试行)...

原标题&#xff1a;2019年金坛城区部分公办幼儿园服务区划分方案(试行)2019年金坛城区部分公办幼儿园服务区划分方案(试行)为认真贯彻省、市、区第二期学前教育五年行动计划中关于试行幼儿园服务区制度的文件精神&#xff0c;满足适龄儿童相对就近入园需求&#xff0c;促进区域…

mui ajax 文件上传,MUI的图片上传和压缩

MUI的上传图片目前知道有两种方式&#xff0c;一种见前面文章中关于图片裁切时使用的base64作为字符串上传&#xff0c;另外一种则是本篇章中所使用的plus.uploader方式&#xff0c;它是一种真正意义上的文件上传&#xff0c;我们可以使用commons- fileupload组件来实现一个文件…

mysql的搜索效率_Mysql模糊查询like效率,以及更高效的写法

在使用msyql进行模糊查询的时候&#xff0c;很自然的会用到like语句&#xff0c;通常情况下&#xff0c;在数据量小的时候&#xff0c;不容易看出查询的效率&#xff0c;但在数据量达到百万级&#xff0c;千万级的时候&#xff0c;查询的效率就很容易显现出来。这个时候查询的效…