前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | Taro 开发微信小程序入门与实战

干货 | Taro 开发微信小程序入门与实战

作者头像
极乐君
发布2019-11-21 11:01:34
1.2K0
发布2019-11-21 11:01:34
举报
文章被收录于专栏:极乐技术社区极乐技术社区
微信小程序是以微信为运行环境的一种应用,其实质是 Hybrid 技术的应用,Hybrid App 即混合模式移动应用介于 Web APP、Native APP 这两者之间的应用。与 H5 类似,但又比 H5 拥有很多原生的能力,比如摄像头、陀螺仪、NFC、调用位置信息等。小程序的原生开发方式用的也是 JavaScriptHTMLCSS 语言。
技术选型

如果追求极致的性能又没有多终端适配的需求,推荐使用小程序原生的开发方式来开发。

如果你是 Vue 开发者,但又不想过多的折腾,继续沿用 Vue 的开发方式来开发小程序,那么用 mpvue 将会是你的最明智的选择。同时也支持一些第三方 UI 库,这就给一些需要讲求速度的小程序开发者提供了便利。mpvue 2.0 在 微信小程序 的基础上增加了对 百度智能小程序、头条小程序 和 支付宝小程序 的支持。

对于 React 爱好者来说,Taro 将是你开发小程序的不二选择,Taro 是第一款用 React 语法写小程序的框架,一直在不断的迭代和快速的成长,官方团队还给开发者提供了 Taro-UI 库,同时支持将 微信小程序 转为 Taro 项目以及 Taro 代码与微信小程序代码混写

叨叨了这么多,回到分享的主题,下面将会详细介绍 如何使用 Taro 开发微信小程序

一:安装 Taro 开发工具 @tarojs/cli

二:使用命令创建模板项目

可以根据自己的需要,选择是否使用ts, sass或者less, 接着等安装好依赖,项目就构建完成;

框架的使用和注意事项,文档中有介绍,我这边主要写一些项目配置和踩过的坑;

这里需要先安装一些依赖

代码规范 .prettierrc

.prettierignore

样式规范:.stylelintrc.js

.stylelintignore

代码语言:javascript
复制
**/dist

.tslint.json

再加上自己配置一个.gitignore文件,就这样,我们将大致需要的配置文件都配置好了;看看效果:

当有不规范的代码提交的时候

把所有问题都解决之后提交,当然tslint以及其他的一些配置都是自定义的,可以自己配置。觉得麻烦的可以根据自己的“口味”配置项目。

然后我们就可以愉快的开发我们的项目,运行npm run dev:weapp,打开我们的小程序

很多人反馈用原生的 Taro.request或者用第三方axios等等做异步请求总会有错,我没亲测,但是自己用promise封装了方法, 在根目录src文件夹下创建utils文件夹, 在这里我简单的模拟微信授权登录,以及检测session是否过期,绑定用户的场景写一个大概例子,接口为虚构:

http.ts代码如下:

api.ts

index.ts (自定义公共处理接口文件)

最后在pages/index/index.tsx中引用就好了

整个框架的使用大致就是这样了,react的书法风格还是挺舒服的,如果习惯了vue的写法可能刚开始会不习惯,有兴趣的可以尝试尝试,下面再简单的把一些小技巧给补上:

一:图片以模块的方式的引入

使用ts搭建的项目,引入静态资源,比如图片,会提示找不到模块,这时候就必须将图片声明为一个模块:

在types目录的global.d.ts文件下:

代码语言:javascript
复制
declare module ‘*.png’ {
 const img: any
 export default img
}
二:动态添加style
代码语言:javascript
复制
<View style={{backgroundImage: `url(${bgImg})`}}></View>

三:动态添加class

四:this的指向问题

1)在 Taro 的页面和组件类中,this 指向的是 Taro 页面或组件的实例,如果我们要引用原生组件,需要使用到this的时候,如果如下引用:

代码语言:javascript
复制
Taro.createCanvasContext(canvasId, this.$scope)
wx.createLivePlayerContext(liveId, this.$scope)

错误:wx.createLivePlayerContext(liveId, this)这样引入是没有效果的,this并不是指向 wx.createLivePlayerContext.

(当前版本没有liveplayer的回调方法,所以直接用原生wx)

五:全局样式问题

全局原始app.scss 只会影响到页面级别的文件,组件的获取不到全局的样式,

可以在组件内部import 全局样式文件,但是这里就有可能,多个组件都引入全局,生成多份全局样式文件

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极乐技术社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 技术选型
    • 二:动态添加style
    相关产品与服务
    云开发 CloudBase
    云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档