小程序云开发笔记一

news2024/11/23 4:03:22

一、什么是云开发?

微信官方云原生开发平台,腾讯云的各种能力加持,用云开发开发者可以节省大量的开发时间和运维成本。

二、云开发优势

在这里插入图片描述
无需运维,数据变大不需要管理,
弹性伸缩,业务量变大,服务器的性能也会弹性伸缩。
数据安全:独立的环境

三、云开发基础能力

在这里插入图片描述
云函数:云函数=小程序后端
云数据库:json数据库
云存储:文件上传下载
云调用:调用腾讯云的开放接口
HTTP API:原有的项目和云开发小程序打通

四、如何开通小程序云开发

点击微信开发者工具上面的云开发,然后配置环境。

  • cloudFunctions | test表示当前的云开发环境是test。
  • cloud Functions表示的是云函数的文件夹
  • miniprogram表示的是小程序前端的代码
  • if(!wx.cloud)表示判断当前的小程序是否支持云开发
  • traceUser表示开启访客记录
  • app.json表示当前项目的全局配置文件
  • app.wxss表示全局的样式
  • project.config.json表示项目的全局配置文件
  • README.md小程序的说明文件
  • miniprogramroot,小程序前端部分的代码
  • cloud function root ,云开发中云函数的路径

五、小程序项目初始化

在app.json中输入页面的路径。
“pages/playlist/playlist”,
“pages/blog/blog”,
“pages/profile/profile”
同时在文件目录中会自动生成文件夹。

  • tabBar中配置color表示未选中的tabbar的字体颜色,selectedColor表示已经选中的颜色。
  • swiper遍历的时候使用block进行遍历,不会将block渲染到里面去。
  • interval表示间隔的时间
  • duration表示动画执行的时间。
<swiper indicator-dots="true" autoplay="true" interval="4000" duration="2000">
	<block wx:for="{{urlList}}">
	<swiper-item>
		<image src="" mode="widthFit"></image>
	</swiper-item>
	</block>
</swiper>

六、组件化开发

组件:在用户界面开发领域,组件是一种面向用户的、独立的、可复用的交互元素的封装。
组件化开发的意义:

  • 组件化是对实现的分层,更有效的代码组合方式
  • 对资源的重组和优化,从而使项目资源管理更合理。
  • 组件化有利于单元测试
  • 对重构较友好

设计原则

  • 高内聚
  • 低耦合
  • 单一职责
  • 避免过多参数

项目中多处都是需要组建开发的。

wx:for中的一些知识

  • wx:for表示遍历一个数组,wx:for-item="data"表示更换默认的遍历对象名称。
  • wx:for-index="idx"表示更换默认索引的名称。
  • wx:key="*this"表示

小程序异步操作解决方案

  1. 什么是异步?
    同步:烧水,水开了之后,继续切菜。
    异步:边烧水,边切菜。
  2. js是单线程的,在同一时间只能处理一个任务。
  3. callback hell回调地狱
    在这里插入图片描述
    上面的代码表示的是分别读取3个txt文件,然后输出a,b,c,
    简单来说,异步编程就是在执行一个指令之后不是马上得到结果,而是继续执行后面的指令,等到特定的事件触发后,才得到结果

也正是因为这样,我们常常会说: JavaScript 是由事件驱动的

现在我们有个需求,a文件读完了再读b,b读完了再读c:

我们可以这样写:

fs.readFile('a.txt','utf8',function(error,data){
  if(error){
    return console.log('读取数据失败!');
  }
  console.log('a');
  fs.readFile('b.txt','utf8',function(error,data){
    if(error){
      return console.log('读取数据失败!');
    }
    console.log('b');
 
    fs.readFile('c.txt','utf8',function(error,data){
      if(error){
        return console.log('读取数据失败!');
      }
      console.log('c');
    });
  });
});

这样就保证了 a 读取完在读 b,b读取完在读 c 了
上面这种代码的书写方式其实就是 回调地狱,一层套一层,维护起来及其困难,如果有100个文件怎么办?
使用 Promise 解决回调地狱问题

Promise

  • 三种状态
    1.pending 初始状态 待定的
    2.fulfilled。成功状态
    3.rejected。失败状态
  • 以上状态是不可逆的
    使用Promise解决回调地狱问题
    new Promise((resolve, reject) => {
      setTimeout(() => {
        console.log(1)
        resolve()//执行成功之后要执行的
      }, 1000)
    }).then((res)=>{
      setTimeout(() => {
        console.log(2)
      }, 2000);
    })

Promise的两个重要的函数

一、Promise.all 场景,上传完所有图片返回文件ID之后再保存

let  p2=new Promise((resolve,reject)=>{
      setTimeout(() => {
        console.log('p2')
        resolve('p2')
      }, 1000);
    })
    let  p1=new Promise((resolve,reject)=>{
      setTimeout(() => {
        console.log('p1')
       // resolve('p1')
        reject('p1')
      }, 2000);
    })
    let  p3=new Promise((resolve,reject)=>{
      setTimeout(() => {
        console.log('p3')
        resolve('p3')
      }, 3000);
    })
    Promise.all([p1,p2,p3]).then((res)=>{
      console.log('全部完成')
      console.log(res)
    }).catch((err)=>{
      console.log('失败')
      console.log(err)
    })

全部执行成功输出
p2
p1
p3
全部完成
[“p1”, “p2”, “p3”]
p1执行失败输出
p2
p1
失败
p1
p3
Promise.all中,只要有一个任务是失败的,整个任务就都是失败的,但它并不会阻止其他任务的执行
== demo.js? [sm]:57 p1 表示在代码的57行输出p1==
二、Promise.race 比赛、竞赛,场景,可以判断请求是否超时

     Promise.race([p1,p2,p3]).then((res)=>{
      console.log('完成')
      console.log(res)
    }).catch((err)=>{
      console.log('失败')
      console.log(err)
    })

按照上面的方法执行之后,输出:
p2
完成
p2
p1
p3
只要有一个任务是完成的,最后的结果就是完成的,也不会影响其他任务继续执行

小程序添加编译模式对单独页面进行调试

  1. 点击普通编译模式
  2. 选择添加编译模式
  3. 输入编译模式,参数等一些属性,点击确定即可
  4. 注意要编译的页面必须提前在app.json文件中已经配置了路由。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在一台电脑上安装多个python版本(小白教程)

我自己的办公电脑是64位&#xff0c;好几个同事的电脑还是win7&#xff0c;32位&#xff0c;因此我在写python办公自动化的时候还要考虑32位的python&#xff0c;因此在电脑上安装了两个版本的python&#xff0c;方便测试、打包使用 1、首先&#xff0c;下载两个python&#xf…

代码随想录算法训练营第七天|LeetCode 454. 四数相加 II 、383. 赎金信、 15. 三数之和、18. 四数之和

LeetCode 454. 四数相加 II 题目链接&#xff1a;454. 四数相加 II 分析&#xff1a; 本题比较简单&#xff0c;因为是无关的四个数组&#xff0c;所以不需要考虑去重&#xff0c;所以用哈希比较简单 思路&#xff1a; 定义个无序map先将nums1和nums2的和的数都存进去&…

单目标应用:世界杯优化算法(World Cup Optimization,WCO)求解单仓库多旅行商问题SD-MTSP(可更改旅行商个数及起点)

一、世界杯优化算法 世界杯优化算法&#xff08;World Cup Optimization&#xff0c;WCO)由Navid Razmjooy等人于2016年提出&#xff0c;该算法模拟了国际足联世界杯比赛&#xff0c;思路新颖&#xff0c;收敛速度快&#xff0c;全局寻优能力强。 算法原理参考&#xff1a;智…

[附源码]java毕业设计学生宿舍管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

新型智能优化算法——海鸥优化算法(基于Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

基于莱维飞行扰动策略的麻雀搜索算法(ISSA)(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

【强化学习论文合集】ICML-2022 强化学习论文 | 2022年合集(二)

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

[附源码]java毕业设计校园摄影爱好者交流网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

elasticsearch bucket 之rare terms聚合

文章目录1、背景2、需求3、前置准备3.1 准备mapping3.2 准备数据4、实现需求4.1 dsl4.2 java代码4.3 运行结果5、max_doc_count 和 search.max_buckets6、注意事项7、完整代码8、参考文档1、背景 我们知道当我们使用 terms聚合时&#xff0c;当修改默认顺序为_count asc时&…

nodejs+mysql+vscode网上图书商城销售管理系统vue

当前社会是一个网络高度发达的社会&#xff0c;人们都处在互联网时代中&#xff0c;对于知识的获取都是通过互联网&#xff0c;为了鼓励人们积极获取纸质知识&#xff0c;我想要设计一个网上图书售卖系统。这个系统设计的目的是为了方便人们们作为参考资料. 网上图书管理系统的…

【31-业务开发-基础业务-品牌管理-级联类别信息业务功能实现-品牌管理和商品分类管理俩者业务关联出现数据冗余,导致数据不同步的问题-开启事务-项目测试】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

进 4 球得 1 分,阿根廷败北背后的科技与狠活

内容一览&#xff1a;11 月 22 日&#xff0c;世界杯 C 组首场比赛&#xff0c;沙特阿拉伯 2:1 反超阿根廷&#xff0c;今天我们将逐一盘点阿根廷进 4 球得 1 分背后的科技与狠活。 关键词&#xff1a;世界杯 VAR 半自动越位技术 沙特爆冷逆袭&#xff0c;2:1 反超阿根廷 2022…

如何改进企业旧式工时管理系统?

工时管理系统对企业很重要&#xff0c;特别是那些不太明显的知识性工作的企业。 一些企业仍在使用基于纸张的工时表管理&#xff0c;这通常会带来以下问题&#xff1a; ● 过程非常耗时 ● 人为错误的风险很高 ● 有道德上的漏洞&#xff0c;如同伴帮打卡和时间盗窃 ● 数据处…

【强化学习论文合集】AAAI-2022 强化学习论文合集(附论文链接)

强化学习&#xff08;Reinforcement Learning, RL&#xff09;&#xff0c;又称再励学习、评价学习或增强学习&#xff0c;是机器学习的范式和方法论之一&#xff0c;用于描述和解决智能体&#xff08;agent&#xff09;在与环境的交互过程中通过学习策略以达成回报最大化或实现…

【测试沉思录】16. 性能测试中的系统资源分析之三:磁盘

作者&#xff1a;马海琴 编辑&#xff1a;毕小烦 三. 磁盘 磁盘是可以持久化存储的设备&#xff0c;根据存储介质的不同&#xff0c;常见磁盘可以分为两类&#xff1a;机械磁盘和固态磁盘。磁盘就像人的大脑皮层&#xff0c;负责数据的储存、记忆。 磁盘对于服务器来说十分重…

大学生静态HTML网页源码——佛山旅游景点介绍网页代码 家乡旅游网页制作模板 web前端期末大作业

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

学生个人网页模板 简单个人主页--贝聿铭人物介绍 6页带表单 带报告3800字

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | ‍个人博客网站 | ‍个人主页介绍 | 个人简介 | 个人博客设计制作 | 等网站的设计与制作 | 大学生个人HTML网页设计作品 | HTML期末大学生网页设计作业…

c语言:初识指针(二)

初识指针一.野指针1.野指针形成原因一是&#xff1a;未初始化2.野指针形成原因二&#xff1a;指针越界3.野指针形成原因三&#xff1a;指针所指向的内存空间被释放二.指针的运算1.指针-整数运算2.指针-指针3.指针的关系运算三.指针和数组四.二级指针五.指针数组1.定义2.用一维数…

APS生产计划排产在装备制造业的应用

装备制造业是对所有为国民经济各部门的简单再生产和扩大再生产提供技术装备的制造工业的总称&#xff0c;范围包括航空、航天、军工制造&#xff1b;民用飞机、铁路、船舶、汽车等先进交通运输设备制造&#xff1b;石油、矿产、化工、压力容器、电力成套设备制造&#xff1b;以…

Jaya算法在电力系统最优潮流计算中的应用(创新点)【Matlab代码实现】

目录 1 概述 2 数学模型 2.1 目标函数 2.2 约束条件 2.3 Jaya 算法 3 仿真结果 4 Matlab代码实现 1 概述 最优潮流计算与电力系统的稳定、经济运行密切相关&#xff0c;自20世纪60年代提出最优潮流的概念&#xff0c;大量学者相继提出了各种优化技术来求解电力系统的最…