小程序和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,一经查实,立即删除!

相关文章

计算机科学与技术mobi,080901-计算机科学和技术.PDF

080901-计算机科学与技术按照教育部计算机科学与技术教学指导委员会制定的《计算机科学与技术专业规范》要求&#xff0c;本专业的主要知识领域包括&#xff1a;离散结构、算法与复杂性、计算机体系结构与组织、操作系统、以网络为中心的计算、软件工程、程序设计语言、程序设计…

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

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

html表单传值,如何将用户输入的表单值从html传递给javascript?

通过将值写入标记,可以将值从javascript传递给html.但是,如果我希望将用户定义的值(等,由查看网页的人输入)传递给java脚本,以便我可以用它做什么,那么最简单的方法是什么&#xff1f;目前,我有这样的事情&#xff1a;如何将表单中的值传递给我的javascript&#xff1f;或者,我…

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

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

计算机应用技术教程的答案,计算机应用技术教程第3章办公自动化答案

计算机应用技术教程参考答案答案&#xff1a;Word部分一、单选题1. 在Word中&#xff0c;如果在英文文章中出现红色波浪下划线&#xff0c;表示( )。A&#xff0e;单词拼写错 B&#xff0e;要全部小写 C&#xff0e;语法错 D&#xff0e;要全部大写2. 在Word中&#xff0c;如果…

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

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

工业设计对计算机技术的应用,计算机在产品设计的应用

摘要&#xff1a;通过在产品设计中引入计算机技术&#xff0c;不仅能够大大提升产品功效&#xff0c;而且其开发周期也得以大幅缩减。在产品设计的各环节&#xff0c;包括调查、分析、定位等由于有了计算机技术的应用而更加便捷&#xff0c;而且计算机技术也在产品设计的草图、…

checksum命令 linux_linux命令详解:md5sum命令

作为一个运维工作者&#xff0c;日常肯定会频繁的更新&#xff0c;怎样区分每次的更新 更清楚的区别两次更新的文件的不同呢 推荐一个比较实用的方法&#xff0c;即获取每次更新文件的md5值。前言在网络传输、设备之间转存、复制大文件等时&#xff0c;可能会出现传输前后数据不…

未来计算机是什么结合的产物,计算机未来发展趋势 (2)

计算机发展趋势计算机网络技术是通信技术与计算机技术相结合的产物。计算机网络是按照网络协议&#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;当遇…

ida导入jni头文件_IDA动态调试无法导入JNI文件的解决办法

前言&#xff1a;学习过程中遇到了&#xff0c;特此记录一下。样本app链接在这里&#xff1a;https://pan.baidu.com/s/1pVLBBuBKRzDzHlBClrBA2A 提取码: 9tz8它是 2015年阿里的一个反调试app&#xff0c;我是参考这篇文章来过反调试的&#xff1a;https://blog.csdn.net/Viewz…

计算机软件名称用什么符号,[计算机软件及应用]第九章符号表.ppt

[计算机软件及应用]第九章符号表第9章 符号表 符号表 用来存放在词法分析过程中生成的有关标识符的语义特征属性信息 符号表中所登记的信息在编译的不同阶段都要用到。 例如作为语义检查的依据&#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;潜力无限。 为更好地引…

广西 启动计算机教案,广西版六年级下册信息技术教案.docx

文档介绍&#xff1a;广西版六年级下册信息技术教案三年级下册信息技术教案1广西版六年级下册信息技术教案主题一制作Flash动画任务一美丽蝴蝶画出来一、教学目标知识与技能:①、认识flash窗口及工具栏;②、能够利用工具栏绘制图画;③、学会简单修改图画。过程与方法:通过用工具…

sap权限激活_sap角色权限设置手册V1.0

SAP角色权限设置及测试手册作者&#xff1a;邓珍石版本&#xff1a;V1.0第1页共14页SAP角色权限设置及测试手册(一)从Source Role拷贝生成Common Role.............................................................................2(二)直接创建生成Common Role ...........…