当前位置:网站首页>小程序框架Taro
小程序框架Taro
2022-07-05 10:21:00 【码小龙.】
Taro
1、介绍
是遵循React语法规范的多端开发解决方案
可以书写一套代码,再通过Taro的编译工具,将代码分别编译出可以在不同端(微信小程序、H5、RN)运行的代码
2、特性
2.1 React语法风格
采用与React一致的组件化思想,生命周期与React保持一致,同时支持JSX语法
2.2 快速开发微信小程序
支持使用npm / yarn安装管理第三方依赖
支持ES6/7/8甚至更新的ES规范
支持CSS预编译器
支持Redux进行状态管理
小程序API优化
2.3 支持多端开发转化
可以支持转换到 微信小程序 以及 H5 端
3、环境搭建
$ cnpm i -g @tarojs/cli
$ taro init myApp01
4、编译使用
4.1 微信小程序
$ npm run dev:weapp
$ npm run build:weapp
4.2 百度小程序
$ npm run dev:swan
$ npm run build:swan
4.3 支付宝小程序
$ npm run dev:alipay
$ npm run build:alipay
4.4 H5
$ npm run dev:h5
$ npm run build:h5
4.5 React Native
$ npm run dev:rn
5、组成
https://nervjs.github.io/taro/docs/composition.html
6、注意事项
6.1 小程序开发工具设置
需要设置关闭 ES6 转 ES5 功能,开启可能报错
需要设置关闭上传代码时样式自动补全,开启可能报错
需要设置关闭代码压缩上传,开启可能报错
7、项目目录结构
├── dist 【编译结果目录】
├── config 【配置目录】
| ├── dev.js 【开发时配置】
| ├── index.js 【默认配置】
| └── prod.js 【打包时配置】
├── src 【源码目录】
| ├── pages 【页面文件目录】
| | ├── index 【index 页面目录】
| | | ├── index.js 【index 页面逻辑】
| | | └── index.css 【index 页面样式】
| ├── app.css 【项目总通用样式】
| └── app.js 【项目入口文件】
└── package.json
7.1 入口文件 app.js
// -> 入口文件也是react风格的写法
// -> 需要引用依赖 @tarojs/taro,这是 Taro 方案的基础框架,在这里我们继承了 Component 组件基类
import Taro, { Component } from ‘@tarojs/taro’
import Index from ‘./pages/index’
import ‘./app.less’
class App extends Component {
// -> 这里的配置主要参考微信小程序的全局配置而来,在编译成小程序时,这一部分配置将会被抽离成 app.json,而编译成其他端,亦会有其他作用
config = {
pages: [
‘pages/index/index’
],
window: {
backgroundTextStyle: ‘light’,
navigationBarBackgroundColor: ‘#fff’,
navigationBarTitleText: ‘WeChat’,
navigationBarTextStyle: ‘black’
}
}
// -> 入口文件继承自 Component 组件基类,它同样拥有组件生命周期,但因为入口文件的特殊性,他的生命周期并不完整
componentWillMount () {
// 作用 -> 程序被载入
// 说明 -> 在微信小程序中这一生命周期方法对应 app 的 onLaunch
}
componentDidMount () {
// 作用 -> 程序被载入
// 说明 -> 在微信小程序中这一生命周期方法对应 app 的 onLaunch,在 componentWillMount 后执行
}
componentDidShow () {
// 作用 -> 程序展示出来
// 说明 -> 在微信小程序中这一生命周期方法对应 onShow,在 H5 中同样实现
}
componentDidHide () {
// 作用 -> 程序被隐藏
// 说明 -> 在微信小程序中这一生命周期方法对应 onHide,在 H5 中同样实现
}
componentDidCatchError () {
// 作用 -> 错误监听函数
// 说明 -> 在微信小程序中这一生命周期方法对应 onError
}
componentDidNotFound () {
// 作用 -> 页面不存在监听函数
// 说明 -> 在微信小程序中这一生命周期方法对应 onPageNotFound
}
// 在 App 类中的 render() 函数没有实际作用
// 请勿修改此函数
render () {
return (
)
}
}
Taro.render(, document.getElementById(‘app’))
// 注意
// 1.微信小程序中 onLaunch 通常带有一个参数 options,在 Taro 中你可以在所有生命周期和普通事件方法中通过 this.$router.params 访问到,在其他端也适用
// 2.入口文件需要包含一个 render 方法,一般返回程序的第一个页面,但值得注意的是不要在入口文件中的 render 方法里写逻辑及引用其他页面、组件,因为编译时 render 方法的内容会被直接替换掉,你的逻辑代码不会起作用。
边栏推荐
猜你喜欢
Have you learned to make money in Dingding, enterprise micro and Feishu?
How can non-technical departments participate in Devops?
How to plan the career of a programmer?
爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
mongoDB副本集
Ad20 make logo
2022鹏城杯web
Window下线程与线程同步总结
5g NR system architecture
风控模型启用前的最后一道工序,80%的童鞋在这都踩坑
随机推荐
C function returns multiple value methods
Learning note 4 -- Key Technologies of high-precision map (Part 2)
C语言实现QQ聊天室小项目 [完整源码]
DDOS攻击原理,被ddos攻击的现象
Write double click event
pytorch输出tensor张量时有省略号的解决方案(将tensor完整输出)
LiveData 面试题库、解答---LiveData 面试 7 连问~
uniapp + uniCloud+unipay 实现微信小程序支付功能
[paper reading] ckan: collaborative knowledge aware autonomous network for adviser systems
报错:Module not found: Error: Can‘t resolve ‘XXX‘ in ‘XXXX‘
Lepton 无损压缩原理及性能分析
In the year of "mutual entanglement" of mobile phone manufacturers, the "machine sea tactics" failed, and the "slow pace" playing method rose
想请教一下,十大券商有哪些?在线开户是安全么?
爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
横向滚动的RecycleView一屏显示五个半,低于五个平均分布
C language QQ chat room small project [complete source code]
小程序中自定义行内左滑按钮,类似于qq和wx消息界面那种
StaticLayout的使用详解
Window下线程与线程同步总结
Livedata interview question bank and answers -- 7 consecutive questions in livedata interview~