- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一文看懂,支撑京东核心业务小程序的统一开发框架「Taro」
Taro 是什么?Taro 是由京东 - 凹凸实验室打造的一套遵循 React 语法规范的多端统一开发框架。现如今市面上端的形态多种多样,H5、App (React Native)、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。使用 Taro,我们可以只书写一套代码,通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信小程序、H5、App、快应用等)运行的代码。同时 Taro 还提供开箱即用的语法检测和自动补全等功能,有效地提升了开发体验和开发效率。Taro 能提供什么?
?? 一次编写,多端运行既然是一个多端解决方案,Taro 最重要的能力当然是写一套代码输出多端皆可运行的代码。目前 Taro 已经支持一套代码同时生成 H5 和微信小程序,App(React Native)端也即将支持,同时诸如快应用等端也将于近期得到支持。同时 Taro 也已经投入到了生产环境使用,目前已经支撑了一个 3 万行代码小程序 TOPLIFE 的开发,以及部分京东购物小程序和一起有局小程序,未来也将会支撑更多的京东核心业务小程序。
?? 现代前端开发流程和微信自带的小程序框架不一样,Taro 积极拥抱社区现有的现代开发流程,包括但不限于:NPM 包管理系统ES6+ 语法自由的资源引用CSS 预处理器和后处理器(SCSS、Less、PostCSS)对于微信小程序的编译流程,我们从 Parcel 得到灵感,自研了一套打包机制将 AST 不断传递,因此代码分析的速度得到了很大的提高。一台 2015 年 的 15寸 RMBP 在编译上百个组件时仅需要大约 15 秒左右。?? 和 React 完全一致的 API 和组件化系统在 Taro 中,你不用像小程序一样区分什么是 App 组件,什么是 Page 组件,什么是 Component 组件,Taro 全都是 Component 组件,并且和 React 的生命周期完全一致。可以说,一旦你掌握了 React,那就几乎掌握了 Taro。而学习 React 的资源也几乎是汗牛充栋,完全不用担心学不会。Taro 和 React 一样,同样使用声明式的 JSX 语法。相比起字符串的模板语法,JSX 在处理精细复杂需求的时候会更得心应手。// 一个典型的 Taro 组件
import Taro, { Component } from @tarojs/taro
import { View, Button } from @tarojs/components
export default class Home extends Component {
constructor (props) {
super(props)
this.state = {
title: 首页,
list: [1, 2, 3]
}
} componentWillMount () {} componentDidMount () {} componentWillUpdate (nextProps, nextState) {} componentDidUpdate (prevProps, prevState) {} shouldComponentUpdate (nextProps, nextState) {
return true
}
add = (e) =gt; {
// dosth
}
render () {
const { list, title } = this.state
return (
View className=indexgt;
View className=titlegt;{title}Viewgt;
View className=contentgt;
{list.map(item =gt; {
return (
View className=itemgt;{item}Viewgt;
)
})}
Button className=add
您可能关注的文档
最近下载
- 国家基层高血压防治管理指南(2025版)培训项目参考答案 .pdf VIP
- 5.6二元一次方程与一次函数教学设计-北师大版八年级数学上册.docx VIP
- 【毕业论文】电风扇模拟自然风控制电路的设计.doc VIP
- JGT503-2016 承插型盘扣式钢管支架构件[参照].docx VIP
- 潮汕英歌舞课件.pptx VIP
- 联合利华专业销售技巧的培训教程.pptx
- 上海交通大学《机体防御与免疫》《机体防御与免疫》教学讲义(2015修).pdf VIP
- 上海交通大学《机体防御与免疫》8主要组织相容性复合体讲义教材.ppt VIP
- 中文三菱分油机维护说明书.pdf VIP
- 专题02 必修第一册 Unit1 Teenage Life 重点单词变形,词组,短语,句型【考点清单】.docx VIP
文档评论(0)