iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux 命令查询小程序中的 WePY 云开发实践
  • 590
分享到

Linux 命令查询小程序中的 WePY 云开发实践

linux命令查询小程序查询小程序 2022-06-04 22:06:02 590人浏览 薄情痞子
摘要

大家好,今天我来为大家分享一下, linux 命令查询小程序中的 WePY 云开发实践。 Why WePY 首先,先分享一下为什么要选择 WePY ? 在项目开始进行选型的时候,我可选的底层框架有 WePy、MPVue、

大家好,今天我来为大家分享一下, linux 命令查询小程序中的 WePY 云开发实践。

Why WePY

首先,先分享一下为什么要选择 WePY ?

项目开始进行选型的时候,我可选的底层框架有 WePy、MPVue、Taro、MinUI,这些框架都是工程化做得很好的框架,可以帮助小程序项目长期进行维护。其中,Taro 因为采用的是我所不熟悉的 React ,所以从一开始就被排除。MPVue 我看了以后,它更多是给 WEB 开发者提供小程序转化工具,而不是给小程序开发者提供类 Vue 工具,所以,也被我排除。 MinUI 由于其本身仅仅是提供了组件化的方案和 npm 、es6/ES7 的支持,其他的命令依然要延续使用小程序的函数,并没有提供更多的支持,整个生态尚不丰富,所以就又排除掉了 MinUI。

到最后,我选择了 WePY 。在下手之前,我研究了一下 WePY,来看看 WePY 中都有哪些优点。 总的来说,我认为 WePY 的优点如下:

1.提供了类似 Vue 的组件化方案:组件化开发可以提升项目的可维护程度,随着你开发周期的变长,组件化会非常大的影响你的开发体验。

2.提供了 ES6/ES7 语法的支持:javascript 为人诟病的回调在 ES6、ES7 中有了更加优雅的实现。

3.提供了 Vue 的生态:和 MinUI 的孤军奋战不同,WePY 有很多 Vue 社区生态的产品,比如 WePY-Redux、RxWX 等一系列 Vue 下,大家习惯使用的工具,这使得开发的流程更加顺畅,开发体验也更加一致。

4.对原生 api优化:在小程序官方提供的接口中,很多都是提供的回调模式,并不提供 Promise ,我们在使用时往往需要自己再重新包一层,比较麻烦。在 WePY 当中, WePY 官方帮我们封装好了一层,你可以直接使用 WePY 所封装好的方法,减少了封装的工作量。

5.Vue 习惯的数据设定:在 WePY 中,你可以使用 this.xxx=xxx 的语法进行赋值操作,相比于原生的 setData 方法,有更加舒适的语法,可维护性也更高。

6.提供了 computed 方法:在开发小程序的时候,我们难免要对数据进行格式化,在传统的小程序开发中,我们需要对数据进行 map ,再进行修改,但是用了 WePY 以后,我们可以使用 computed 计算属性来进行数据的格式化和调整,大大的提升了代码的可读性。

上述是我所看重的 WePY 优势,接下来,我来说一说如何在 WePY 中使用云开发。

云开发 in WePY

我写过很多小程序,也讲过一些小程序课程,经常会有人问我,XXX 可以用在 XXX 里么,放在这个场景中,就是云开发可以用在 WePY 中么?

答案当然是肯定的。

看待这个问题,你应该首先搞清楚,云开发所提供的到底是什么?

云开发提供的是数据存储、文件存储和计算能力

和 WePY 的定位提供微信小程序组件化开发的能力并不冲突,所以, WePY 和云开发并不冲突,你可以在 WePY 中使用云开发。

在 WePY 项目中启用云开发

由于 WePY 本身并没有提供云开发的模板(不过你现在可以使用 wepy init cloudkits/wepy-tcb-demo 命令来初始化一个包含了云开发示例的 WePY 项目),所以,我们需要自己在项目中添加云开发。

云开发本身而言,是集成在 wx. 的名字空间内的,所以无需配置可以直接使用 wx.cloud.xxx 来调用云开发的各项命令。此外,比较特殊的是,你需要指定一下云函数目录,来确保微信小程序开发者工具能够识别出云函数目录。

此处需要注意的是, 因为云开发的命令本身就支持 Promise 和 Callback ,所以你可以直接使用 wx.cloud 来调用,而不是使用 wepy.cloud 来调用。WePY 官方也没有针对云开发进行再一次的封装。

你可以在小程序项目的根目录创建一个新的目录 cloudfunctions ,然后在 project.config.JSON 中添加一个新的配置项目 cloudfunctionRoot,并将其值设置为 cloudfunctions。这样,微信小程序开发者工具就能够识别出这个目录是云函数的目录,并为其加上特殊的目录名。

此处需要注意的是,云函数应当放在小程序的源码目录 src 之外,不然会导致编译报错。我试图寻找 wepy.config.js 的中关于屏蔽编译检查目录的配置项目,但是没有找到,所以我直接将这个目录放在了项目根目录,云函数和小程序源码的 src 同级。

这样,你就完成了 WePY 中的小程序云开发的引用。

在开发过程中踩过的坑

this 赋值应先设置 data

使用 WePY 开发时,我们使用 this.xxx 来修改数据的值,但是在我一开始开发的时候,遇见的第一个问题时,使用 this.xxx 无法设置数据的值,在小程序界面中无法获取到对应的值。

后续才发现,原来如果你希望由 WePY 替你更新和管理数据,你需要将要传递到页面的数据放在页面实例中的 data 对象中,这样 WePY 才会帮你更新和管理数据。由于在文档中并没有注明这一点,所以我踩在了坑里。

后续对 WePY 进行分析后,理解了这样的做法,由于 WePY 中没有使用 setData,而是直接调用 this.xxx 来进行修改,那么 WePY 就需要知道哪些变量应该发送到页面,否则,将所有 this 中的数据都传递到页面中,将会导致传递的时间过长,容易让小程序退出,这时,使用 data 来限定数据的方法就可以理解了。

如何处理纯移动端数据的管理?

截止到目前,云开发并没有提供除了微信小程序官方控制台以外的管理方式,这就使得我们在构建应用的时候备受掣肘。

为了更好的提供服务,我们决定修改产品的模式。一开始我们考虑用户提交翻译,团队进行审核的模式,但是考虑到没有管理端和开发成本的问题。我们决定调整一下模式,改为社区自净化。我们完全开放编辑的能力,任何用户都可以提交数据。同时,也可以在国内实践一个完全由社区维护的应用。

但是,这种任何人都可以提交数据很有可能被人所利用,所以,我们引入了微信小程序官方提供的内容安全接口,来进行文本的安全检测,从而,尽可能的规避一些违法违规内容对小程序的影响。


如果你用这个接口,你就会知道,接口的调用时需要使用 access_token,而微信的 access_token 获取接口既有发起调用的地址限制(不能在小程序中调用),也有接口请求频率的限制(请求过快可能会导致无法获取到 Token),因此,我们决定使用云函数来处理这部分的功能。

我们在云函数内使用 Got 这个库来请求微信提供的接口,进行 access_token 的获取,以及内容安全的检测。并且,为了确保 access_token 的请求不会频率过快,所以我们加入了一些代码,来进行 token 的缓存


const result = await cache.get(); // cache 为对应 collection 的引用
const now = (new Date).valueOf();
const nextTime = now + 5400000;
let accessToken = ''
if (!result.data.length) {
 console.log("进入初次获取的流程")
 const result = await got(accessTokenUrl)
 accessToken = JSON.parse(result.body).access_token
 await cache.add({
  data: {
   token: accessToken,
   time: nextTime
  }
 })
} else {
 if (result.data[0].time > now) {
  console.log("已有 token 有效")
  accessToken = result.data[0].token
 } else {
  console.log("已有 token 无效")
  const tokenResult = await got(accessTokenUrl)
  accessToken = JSON.parse(tokenResult.body).access_token
  await cache.doc(result.data[0]._id).update({
   data:{
    token: accessToken,
    time: nextTime
   }
  })
 }
}

通过上述代码,实现了在云数据库中存储一个 token ,并比对其过期时间,如果发现 token 即将过期,就更新 token ,确保可以正常请求。

总结

回顾整个小程序的开发过程,WePY 的便利使得整个开发的过程无比的流畅,云开发的快速迭代的优势,帮助整个应用快速上线。Linux 小程序到正式发布时,总体的开发时长不超过 24 小时!

--结束END--

本文标题: Linux 命令查询小程序中的 WePY 云开发实践

本文链接: https://www.lsjlt.com/news/20211.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现Linux命令查询小程序
    这篇文章主要介绍了如何实现Linux命令查询小程序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Why WePY首先,先分享一下为什么要选择 WePY ?在项目开始进行选型的...
    99+
    2023-06-16
  • Python 开发者的微信小程序开发实践
    微信小程序作为一种轻量级的应用形式,在移动互联网领域取得了极大的成功。 作为 Python 开发者,如何在微信小程序的开发中发挥 Python 的优势?本文将为你展示如何从零开始搭建一个基于 Python 的微信小程序项目,包含详细的解决...
    99+
    2023-09-03
    微信小程序 python 小程序
  • 微信小程序开发实践的示例分析
    这篇文章主要介绍了微信小程序开发实践的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。小程序由于微信提供了一些组件,在微信中的一些体验确实不错,对于开发来说,由数据驱动...
    99+
    2023-06-26
  • 小程序云开发数据库关联查询的方法是什么
    小程序云开发数据库关联查询的方法是使用聚合操作来实现。具体步骤如下:1. 创建一个聚合操作对象。2. 使用lookup方法将两个集合...
    99+
    2023-05-31
    小程序云开发数据库 数据库
  • 公交查询小程序开发的基本功能有哪些
    这篇文章主要介绍“公交查询小程序开发的基本功能有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“公交查询小程序开发的基本功能有哪些”文章能帮助大家解决问题。1。公交车到站时间查询:公交车到站时间的...
    99+
    2023-06-27
  • 小程序中云开发的示例分析
    这篇文章将为大家详细讲解有关小程序中云开发的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 云开发简介由于小程序本身存储数据的能力有限,所以不可能将大量的数据...
    99+
    2024-04-02
  • 如何使用PHP开发微信小程序的房产查询功能?
    如何使用PHP开发微信小程序的房产查询功能?随着微信小程序的兴起,越来越多的开发者开始将自己的业务拓展到微信小程序。其中,房产查询是一个非常常见的功能需求。本文将介绍如何使用PHP开发微信小程序的房产查询功能,并提供具体的代码示例。创建数据...
    99+
    2023-10-27
    PHP 微信小程序 房产查询
  • 小程序开发中实用的小知识有哪些
    这篇文章跟大家分析一下“小程序开发中实用的小知识有哪些”。内容详细易懂,对“小程序开发中实用的小知识有哪些”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“小程序开发中实用的小知识有...
    99+
    2023-06-29
  • 小程序开发如何添加节点的滚动位置查询请求
    本文小编为大家详细介绍“小程序开发如何添加节点的滚动位置查询请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“小程序开发如何添加节点的滚动位置查询请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。添加节点的滚动...
    99+
    2023-06-26
  • 开发过程中常用的Linux系统命令有哪些
    这篇文章主要介绍了开发过程中常用的Linux系统命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关机/重启/注销常用命令作用shutdown -h now即刻关机sh...
    99+
    2023-06-22
  • uniapp开发小程序-实现中间凸起的 tabbar
    一、效果展示: 二、代码实现: 1.首先在pages.json文件中进行tabbar的样式和列表配置,代码如下: {"pages": [ //pages数组中第一项表示应用启动页,参考:https:...
    99+
    2023-09-05
    uni-app 小程序 windows
  • 微信小程序开发中生命周期的详细介绍
    目录前言生命周期的概念微信小程序生命周期一、应用级生命周期二、页面级生命周期三、组件的生命周期四、小结最后前言 在微信小程序开发中,关于微信小程序API的使用是必备技能,但是关于微信...
    99+
    2023-05-13
    微信小程序生命周期 小程序生命周期函数
  • Linux系统中的ps进程查看命令的使用实例
    这篇文章主要讲解了“Linux系统中的ps进程查看命令的使用实例”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统中的ps进程查看命令的使用实例”吧!linux 中ps命令是Pro...
    99+
    2023-06-12
  • Linux系统中有哪些查询发型版本号以及内核版本的命令
    本篇内容介绍了“Linux系统中有哪些查询发型版本号以及内核版本的命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!了解Linux发行版本的...
    99+
    2023-06-12
  • 微信小程序开发中组件的生命周期详细介绍
    目录组件的生命周期自定义组件的生命周期函数执行顺序组件常用的生命周期函数lifetimes节点组件所在页面的生命周期函数pageLifetimes节点组件的生命周期 组件的生命周期,...
    99+
    2024-04-02
  • 小程序开发中怎么实现九宫格界面的导航
    这篇文章将为大家详细讲解有关小程序开发中怎么实现九宫格界面的导航,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先来考虑九宫格数据的生成,每一个格子需要有一个图标、一个标...
    99+
    2024-04-02
  • 微信小程序云开发中如何修改云数据库的数据
    小编给大家分享一下微信小程序云开发中如何修改云数据库的数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!小程序代码中无法直接修改...
    99+
    2024-04-02
  • 小程序开发中如何实现暂停正在播放的语音
    本文将为大家详细介绍“小程序开发中如何实现暂停正在播放的语音”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“小程序开发中如何实现暂停正在播放的语音”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容...
    99+
    2023-06-26
  • 微信小程序+云开发实现欢迎登录注册的示例分析
    这篇文章将为大家详细讲解有关微信小程序+云开发实现欢迎登录注册的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。因为是学生党,而且并没有很大的需要,所以选择了微信小...
    99+
    2024-04-02
  • 微信小程序开发中如何实现开始搜寻附近的蓝牙外围设备
    这篇文章主要为大家展示了微信小程序开发中如何实现开始搜寻附近的蓝牙外围设备,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“微信小程序开发中如何实现开始搜寻附近的蓝牙外围设备”这篇文章吧。开始搜寻附近...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作