本次展示主要介绍如何实现一套代码跨多端,使用传统的前端方式开发小程序,解决各平台个性化,状态管理,以及自动化打包多平台流程。
Taro是有京东凹凸实验室打造的多端统一开发框架,目前支持react、vue等主流框架,写一套代码就可以多端运行
支持ES6、ES7 8等新规范
支持npm、yarn安装管理
支持Redux、MobX进行状态管理
支持Less、Scss预编译
支持大部分前端库、组件
遵循前端开发规范,前端人员皆可参与,极大的解放生产力
npm install -g @tarojs/cli // 全局安装
查看版本信息:npm info @tarojs/cli // 本次演示版本@3.3.9
初始化:taro init [name]
"dev:weapp": "npm run build:weapp -- --watch", // 微信
"dev:swan": "npm run build:swan -- --watch", // 百度系
"dev:alipay": "npm run build:alipay -- --watch", // 阿里系
"dev:tt": "npm run build:tt -- --watch", // 头条系
"dev:h5": "npm run build:h5 -- --watch", // H5
"dev:rn": "npm run build:rn -- --watch", // react-native
"dev:qq": "npm run build:qq -- --watch", // QQ
"dev:jd": "npm run build:jd -- --watch", // 京东系
"dev:quickapp": "npm run build:quickapp -- --watch" // 快应用
本次环境主要以微信小程序演示
npm run dev:weapp // 启动本地环境
然后打开微信开发者工具,目录为project.config.json配置的miniprogramRoot的值,默认为根目录的dist/,
多年以来,Web端沉淀了大量优秀的组件库、优秀的前端工程师,使用HTML方式开发有以下优势:
可以让众多前端工程师0成本上手开发
大多组件库也可以支持,例如antD
原生H5代码也可以直接迁移
使用方法:
yarn add @tarojs/plugin-html
config = {
_// ..._
plugins: ['@tarojs/plugin-html']
}
taro框架没有默认的百度小程序配置,需要手动添加,步骤如下:
百度小程序配置: project.swan.json
{
"libVersion": "2.10.9",
"setting": {
"urlCheck": false
}
}
yarn add @tarojs/plugin-platform-lark
plugins: [
[
'@tarojs/plugin-platform-lark',
{
pc:false
}
]
]
"build:lark": "taro build --type lark",
"dev:lark": "npm run build:lark -- --watch",
飞书小程序配置:project.lark.json
{
"miniprogramRoot": "./",
"projectname": "taro-lark",
"description": "taro-lark",
"appid": "touristappid",
"setting": {
"urlCheck": true,
"es6": true,
"postcss": false,
"minified": false
},
"compileType": "miniprogram"
}
yarn add @tarojs/plugin-platform-alipay-dd
plugins: [
[
'@tarojs/plugin-platform-alipay-dd'
]
]
"build:dd": "taro build --type dd",
"dev:dd": "npm run build:dd -- --watch",
可以根据该参数显示相应的平台内容,示例:
import {useEnv}from "taro-hooks";
const env = useEnv();
const envObj = {
'WEAPP':'这是微信小程序',
'SWAN':'这是百度小程序',
'ALIPAY':'这是支付宝小程序',
'WEB':'这是H5页面',
}
{
envObj[env]
}
taro项目里可以自由使用react相关的技术栈,比如使用redux解决复杂的数据管理问题。
使用方法如下:
安装依赖:npm I redux react-redux
根目录下新建reducers/index.js
import {combineReducers} from 'redux';
function count(state = 0, action) {
switch (action.type) {
case 'GET_COUNT':
return action.data;
default:
return state;
}
}
export default combineReducers({
count
});
import {Provider}from 'react-redux';
import {createStore}from 'redux';
import reducersfrom './reducers';
const store =createStore(reducers);
render() {
return (
{this.props.children}
)
}
import {useSelector, useDispatch}from 'react-redux';
const count =useSelector(state => state.count);
const dispatch =useDispatch();
dispatch({
'type':'GET_COUNT',
'data': count +1
});
同时支持多个平台,全部挨个手动打包费时费力,因此可以使用shell脚本实现多平台自动化打包。
以微信、H5、百度、头条、阿里为例:
count=0
my_arr=(weapp h5 swan tt alipay)
fn() {
name=${my_arr\[$1]}
if [ -d"$name" ];then
rm -rf"$name"
fi
echo "开始打包${name}"
npm run build:"$name"
mv dist"$name"
tar -zcf"$name".tar.gz"$name"
rm -rf"$name"
echo "${name}打包结束"
val=$((${#my_arr[@]} -1))
if [ $1 -lt $val ];then
val2=$(($1 +1))
fn $val2
fi
}
fn $count
原网址: 访问
创建于: 2022-07-13 00:24:57
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论