Taro + 微信云服务 实战用法举例(附源码)

2024-01-09 02:50

本文主要是介绍Taro + 微信云服务 实战用法举例(附源码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Taro + 微信云服务 实战用法举例(vue)

  • 云服务配置
  • 使用云函数
  • 云存储

由于网上有关Taro框架使用微信云服务并没有太多教程,花费我很多时间,于是写下本博客。有什么问题欢迎提出。
项目源代码见:1.1.0版本涉及到本博客代码


为了将数据存储到云端服务器,而不仅仅是本地缓存,学习了微信云服务的相关用法

云服务配置

首先在开发者工具界面点击云开发,开通微信云服务
在这里插入图片描述
在设置界面可以获取到环境ID:

在这里插入图片描述
为项目配置云环境,要在project.config.json中添加"cloudfunctionRoot": "cloud/",这里的cloud就是云函数所在的文件夹:
在这里插入图片描述
project.config.json
在这里插入图片描述

使用云函数

为了将数据为每个用户保存在云端,需要先获取openid,于是先创建一个云函数(此处省略配置文件)来获取openid

在微信开发者工具中新建云函数:
在这里插入图片描述
编写index.js文件:

// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init({env: cloud.DYNAMIC_CURRENT_ENV
})// 云函数入口函数
exports.main = async (event, context) => {console.log(event)console.log(context)// 可执行其他自定义逻辑// console.log 的内容可以在云开发云函数调用日志查看// 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息const wxContext = cloud.getWXContext()return {event,openid: wxContext.OPENID,appid: wxContext.APPID,unionid: wxContext.UNIONID,}
}

openid即是需要获取的内容,为了启动云服务,还需要再app.js中的生命周期函数中启动云服务

mounted() {if (process.env.TARO_ENV === 'weapp') {Taro.cloud.init({env: '填写自己的云环境ID',traceUser: true})}
},

通过学习Taro的API文档,学习调用云函数的方法:

callFunction调用云函数,参考文档。

getUserContext: async function () {await Taro.cloud.callFunction({name: 'login',data: {},}).then(res => {this.openId = res.result['openid']this.getData(this.openId)})
},

注意:这里name要填写云函数的名字,之前获取不到ID,在这里卡了很久

云存储

相关文档参考自Taro API,部分用法官方API介绍不详细,通过查看node_modules中Taro API的注释来使用:Taro文档

数据保存在这里:
在这里插入图片描述
云端获取数据:

    // 获取云服务器的数据getData: async function (openId) {const result = await this.db.collection('tasks').where({_openid: openId}).get()for (let i = 0; i < result.data.length; i++) {this.todos.push(result.data[i])}console.log(this.todos)},

云端更新数据:

changeState: function (todo) {todo.completed = !todo.completed// 更新数据库中的任务let task_id = this.todos[this.todos.indexOf(todo)]._idthis.db.collection('tasks').doc(task_id).update({data:{completed: todo.completed}})

云端添加数据:

  // 将数据存储到云服务器中this.db.collection('tasks').add({data: {title: value,completed: false,createTime: this.db.serverDate()}}).then(res => {console.log(res)})

这篇关于Taro + 微信云服务 实战用法举例(附源码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/585712

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

java中反射(Reflection)机制举例详解

《java中反射(Reflection)机制举例详解》Java中的反射机制是指Java程序在运行期间可以获取到一个对象的全部信息,:本文主要介绍java中反射(Reflection)机制的相关资料... 目录一、什么是反射?二、反射的用途三、获取Class对象四、Class类型的对象使用场景1五、Class

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat