Fork me on GitHub

taro教程

taro适配多端

 

介绍

Taro是一套遵循 React 语法规范的多端统一开发框架

多端统一开发框架,支持用 React 的开发方式编写一次代码,生成能运行在微信小程序、H5、React Native 等的应用。

Taro 是一套遵循 React 语法规范的 多端开发 解决方案。现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。

使用 Taro,我们可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信小程序、H5、RN 等)运行的代码

官网

React 语法风格

Taro 遵循 React 语法规范,它采用与 React 一致的组件化思想,组件生命周期与 React 保持一致,同时支持使用 JSX 语法,让代码具有更丰富的表现力,使用 Taro 进行开发可以获得和 React 一致的开发体验。

其实说实话,就算不会React,跟着Taro学习,看几遍也就会了。

 

正文

废话不多说,直接上,正所谓,算了忘了古诗词了,接下来进入Taro的世界吧

安装

先来安装一下Taro吧

/** Quick Start With NPM Or Yarn **/
$ npm install -g @tarojs/cli
$ yarn global add @tarojs/cli


小伙伴们安装成功了吗,如果不出现什么意外的情况下,基本上安装都能成功,不成功的小伙伴看一下自己的node哦,node没错的话,可能是网络的原因,可以尝试一下cnpm吧

安装成功后基本上可以看到以下画面

 

 

 

看到这里证明你安装成功了哦!下接下来输入

taro -V

 


看一下版本哦,目前Taro可能处于初期开发阶段,版本更新会比较快,不过不要紧,不会影响到你的项目哦,相反会更好

好了安装成功后,Taro就可以正常使用啦

创建项目

接下来创建项目就是

Taro init demo


taro会以非常快速度创建完成 

 

 

Taro目录

看一下Taro目录

 

 

 

具体Taro使用命令看一下项目的package.json目录哦

先来运行一下吧,输入

npm run dev:h5


浏览器会自动打开一个10086端口的地址

Taro项目就创建成功啦,简单吧,他的开发其实也挺简单哦,快去上手吧

Taro运行

微信小程序
选择微信小程序模式,需要自行下载并打开微信开发者工具,然后选择项目根目录进行预览。
微信小程序编译预览及打包

# npm script
$ npm run dev:weapp
$ npm run build:weapp


H5
H5 模式,无需特定的开发者工具,在执行完下述命令之后即可通过浏览器进行预览
H5 编译预览及打包

# npm script
$ npm run dev:h5


React Native
React Native 端运行需执行如下命令,React Native 端相关的运行说明请参见 React Native 教程

# npm script
$ npm run dev:rn


百度小程序
选择百度小程序模式,需要自行下载并打开百度开发者工具,然后在项目编译完后选择项目根目录下 dist 目录进行预览。
百度小程序编译预览及打包

# npm script
$ npm run dev:swan
$ npm run build:swan


支付宝小程序
选择支付宝小程序模式,需要自行下载并打开支付宝小程序开发者工具,然后在项目编译完后选择项目根目录下 dist 目录进行预览。
支付宝小程序编译预览及打包

# npm script
$ npm run dev:alipay
$ npm run build:alipay


对了,Taro更新比较快,还要记得更新Taro项目哦

Taro 提供了更新命令来更新 CLI 工具自身和项目中 Taro 相关的依赖
更新 Taro CLI 工具

# taro

$ taro update self


# npm

npm i -g @tarojs/cli@latest


# yarn

yarn global add @tarojs/cli@latest

 

注意事项

我们在使用taro语法应注意的事项
1. 使用两个空格换行;
2. 结束不能用分号;
3. 除了缩进,不能使用多个空格;
4. 统一用单引号;
5. 关键词后加空格,如Iif (condition) {},括号前都有空格;
6. 避免多余的空行;
7. 函数声明时括号与函数名间加空格,,,,如function name (arg) { … } run(function () { … })
8. 展开运算符与它的表达式间不要留空白 如:fn(…args)
9. 遇到分号时空格要后留前不留 如:for (let i = 0; i < items.length; i++) {…}
10. 代码块首尾留空格 如if (admin) {…}
11. 圆括号间不留空格 如getName(name)
12. 属性前面不要加空格 如user.name
13. 一元运算符前加一个空格 如:typeof !admin
14. 注释首位留空格 如:/* comment */
15. 模板字符串中模板前后不加空格 如:const message = Hello, ${name}
16. 逗号后加空格 如const list = [1, 2, 3, 4] function greet (name, options) { … }
17. 不允许连续多行空格
18. 单行代码块两边加空格
19. 始终将逗号置于行末
20. 点号操作符须与属性需在同一行
21. 函数调用时,标识符与括号见不留空格 如console.log(‘hello’)
22. 键值对冒号与值之间留空白 如const obj = { ‘key’: ‘value’ }
23. 变量和函数名统一使用驼峰命名法: 如

function myFunction () { } const myVar = ‘hello’


字符串拼接操作符 (Infix operators) 之间要留空格 如

const message = 'hello, ’ + name + ‘!’


检查 NaN 的正确姿势是使用 isNaN() 如 

if (isNaN(price)) { }


合法的字符串和type of 进行比较 如

typeof name === ‘undefined’

24. 数组的注意事项:

1) 不要解构空值

2) 使用数组字面量而不是构造器 如

const { a: { b } } = foo

3) 不要扩展原生对象 如

Object.prototype.age = 21 //不行

 

4) 对象属性换行时注意风格

const user = { name: ‘Jane Doe’, age: 30, username: ‘jdoe86’ } // ✓ 正确
const user = {
name: ‘Jane Doe’,
age: 30,
username: ‘jdoe86’
}


5) 不使用不必要的对象值作为计算属性 如

const user = { name: ‘John Doe’ } //


6) 避免使用 arguments.callee 和 arguments.caller
7) 嵌套的代码块中禁止再定义函数
8) 禁止使用 Function 构造器

const sum = new Function(‘a’, ‘b’, ‘return a + b’) // ✗ 错误


9) 自调用匿名函数 (IIFEs) 使用括号包裹

const getName = function () { }() // ✗ 错误
const getName = (function () { }()) // ✓ 正确
const getName = (function () { })() // ✓ 正确


10) 使用 Promise 或者 async functions 来实现异步编程

function* helloWorldGenerator() { // ✗ 错误
yield ‘hello’;
yield ‘world’;
return ‘ending’;
}


25. 类名注意事项:

1) 类名要以大写字母开头

const dog = new Animal() // ✓ 正确


2)避免对类名重新赋值

class Dog extends Mammal {
constructor () {
super() // ✓ 正确
}
}


3)使用 this 前请确保 super() 已调用

class Dog extends Animal {
constructor () {
this.legs = 4 // ✗ 错误
super()
}
}


4) 禁止多余的构造器

class Car {
constructor () { // ✗ 错误
super()
}
}


5) 类中不要定义冗余的属性

class Dog {
bark () {}
bark () {} // ✗ 错误
}


6) 无参的构造函数调用时要带上括号

function Animal () {}
const dog = new Animal // ✗ 错误
const dog = new Animal() // ✓ 正确


7) new 创建对象实例后需要赋值给变量

new Character() // ✗ 错误
const character = new Character() // ✓ 正确


8) 用 throw 抛错时,抛出 Error 对象而不是字符串

throw ‘error’ // ✗ 错误
throw new Error(‘error’) // ✓ 正确


9) catch 中不要对错误重新赋值

try {
//
} catch (e) {
e = ‘new value’ // ✗ 错误
}

 


 

文章就分享到这,欢迎关注“前端大神之路”

 

 

posted @ 2020-07-09 11:01  广东靓仔-啊锋  阅读(1091)  评论(0编辑  收藏  举报