【uni-app】uni-app之云开发uniCloud跨全栈开发笔记总结,包括一个 schema自动生成代码小案例(附详细截图)

news2024/9/20 1:08:47

1- 前言


本文主要讲解如何使用uni-app 和 uniCloud 云开发,实现小案例,不需要后端,来实现全栈开发。

2- 概念


2.1 什么是uni-app

uni-app 是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

具体内容可见 uni-app官方网址

2.2 什么是uniCloud

uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。

具体内容可见 uniCloud官方网址

2.3 uniCloud 的价值

本段摘自官方网址

  • 对于程序员,从此你又get一个新技能,用熟悉的js,轻松搞定前后台整体业务。
  • 对于开发商:
    1. 开发成本大幅下降、开发效率大幅提升、上线和迭代速度大幅提速;
    2. 如果你是新创公司,将无需雇佣php或java等服务器工程师,每年至少节省几十万;
    3. 如果你已拥有掌握php和js的全栈,那么改用新的技术栈,一样可以大幅提升开发效率、降低成本;
    4. 你只需专注于你的业务,其他什么服务器运维、弹性扩容、大并发承载、防DDoS攻击,全都不需要操心;
    5. 除了开发成本,云资源租用成本也将大幅下降
    6. 如果不发布Web版,你将不需要购买备案域名。小程序和App可以免域名使用服务器;

uniCloud为每个开发者提供一个免费服务空间,让你也可以拥有自己的服务器

在这里插入图片描述

3- 快速上手


3.1 创建uniCloud项目

在HBuilderX里新建项目,选择启用uniCloud,可勾选阿里云,点击创建

在这里插入图片描述

3.2 创建和绑定服务空间

  • 一个服务空间对应一整套独立的云开发资源,包括数据库、存储空间、云函数等资源。服务空间之间彼此隔离。

  • 每个服务空间都有一个全局唯一的space ID。

  • 通过 HBuilderX 中管理服务空间,包括新建服务空间和关联服务空间

在 uniCloud 目录右键菜单中创建服务空间

  1. 在uniCloud文件夹后,点击右键,选择关联云服务空间或项目,点击新建,选择关联;

在这里插入图片描述

  1. 然后会跳转,此时我们创建服务空间;

在这里插入图片描述

3.3 云函数

  • 云函数即在云端(服务器端)运行的函数。
  • 从 HBuilderX 3.4起,新增了云函数的扩展版,云对象。
  • 开发者无需购买、搭建服务器,只需编写代码并部署到云端即可在客户端(App/Web/小程序等)调用,同时云函数之间也可互相调用。
  • 一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。当云函数被客户端调用时,定义的代码会被放在 Node.js 运行环境中执行。
  1. 在cloudfunctions文件夹,右键单击,新建云函数;

在这里插入图片描述

  1. 目录结构如下;

在这里插入图片描述

  1. 上传并部署

在这里插入图片描述

  1. 云函数编写 (event前端传递data函数,return是返回给前端的数据)

在这里插入图片描述

  1. 页面调用

在这里插入图片描述

3.4 云数据库

uniCloud提供了一个 JSON 格式的文档型数据库。顾名思义,数据库中的每条记录都是一个 JSON 格式的文档。

在这里插入图片描述

  1. 创建云数据库,自己给数据表起个名称;

在这里插入图片描述

  1. 添加记录;

在这里插入图片描述

  1. 添加数据(新增数据)

在这里插入图片描述

  1. 修改表结构

在这里插入图片描述
在这里插入图片描述

  1. 下载表结构

在这里插入图片描述

3.5 前端部分

  1. 安装插件uni-ui,在插件市场搜索导入;

在这里插入图片描述

  1. 渲染页面(展示前端数据)

collection=" " 集合(填入表的数据)

在这里插入图片描述

  1. 运行项目—>连接云函数

在这里插入图片描述

  1. 页面结构

    • index.vue
<template>
	<view class="content">
		<button @click="call">呼叫服务器</button>
		<unicloud-db v-slot:default="{data, loading, error, options}" collection="concat">
			<view v-if="error">{{error.message}}</view>
			<view v-else>
				<uni-list>
					<uni-list-item v-for="item in data" :key="item._id" :title="item.username" :note="item.tel"></uni-list-item>
				</uni-list>
			</view>
		</unicloud-db>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				title: 'Hello'
			}
		},
		onLoad() {

		},
		methods: {
			call() {
				uniCloud.callFunction({
						name: "base"
					})
					.then(res => {
						uni.showModal({
							title: JSON.stringify(res)
						})
					})
					.catch(err => {
						console.log(err);
					})
			}
		}
	}
</script>

在这里插入图片描述

4- 删除remove


语法

this.$refs.udb.remove(id,options)

udb为unicloud-db组件的ref属性值

必选参数id

在这里插入图片描述

  • index.vue
<template>
	<view class="content">
		<button @click="call">呼叫服务器</button>
		<unicloud-db ref="udb" v-slot:default="{data, loading, error, options}" collection="concat">
			<view v-if="error">{{error.message}}</view>
			<view v-else>
				<uni-list>
					<uni-list-item @longpress.native="$refs.udb.remove(item._id)" v-for="item in data" :key="item._id" :title="item.username" :note="item.tel"></uni-list-item>
				</uni-list>
			</view>
		</unicloud-db>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				title: 'Hello'
			}
		},
		onLoad() {

		},
		methods: {
			call() {
				uniCloud.callFunction({
						name: "base"
					})
					.then(res => {
						uni.showModal({
							title: JSON.stringify(res)
						})
					})
					.catch(err => {
						console.log(err);
					})
			}
		}
	}
</script>

在这里插入图片描述

@longpress长按触发事件,长按某个列表项或按钮弹出弹窗

5- 增加add


在这里插入图片描述

6- schema自动生成代码


6.1 完成 opendb-contacts通讯录 案例

  1. 新建项目concat;

在这里插入图片描述

  1. 关联云服务空间;

在这里插入图片描述

  1. 右键单击,打开uniCloud Web 控制台;

在这里插入图片描述

  1. 打开云数据库,点击小+号,新添加一条记录,选择其他,选择通讯录;

在这里插入图片描述

  1. 创建完成之后,可修改表结构;

在这里插入图片描述

  1. 找到database 右键单击,选择“下载所有DB Schema 及扩展校验函数”,成功 的图如第二张所示

在这里插入图片描述
在这里插入图片描述

  1. 在命名为 opendb-contacts.schema.json 的文件夹里,右键单击,选择 schema2code ;

在这里插入图片描述

  1. 在弹开的页面,直接按照步骤操作即可;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 成功之后,会在pages里出现一个以opendb-contacts 命名的文件夹,里面有四个页面;

在这里插入图片描述
在这里插入图片描述

6.2 完成 opendb-nation-china 中国民族案例

此时我们直接在concat这个项目里新建,还在云数据库里面新建表数据

在这里插入图片描述

后面导入的步骤也是一样
注意:导入文件时,选择跳过

此图不是这个步骤的图,意思是让选择跳过
在这里插入图片描述

  • 创建成功的标志

在这里插入图片描述

6.2 完成 opendb-city-china中国城市 案例

  • 完成云数据库新建表

在这里插入图片描述

  • 右击新建,选择下载所有,弹出一个框,选择跳过

在这里插入图片描述

  • 更改 内容

在这里插入图片描述

  • 上传DB Schema

在这里插入图片描述
在这里插入图片描述

  • schema2code

在这里插入图片描述

  • 安装步骤操作

在这里插入图片描述


uni-app之云开发uniCloud跨全栈开发笔记总结就到这里了~

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

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

相关文章

对信息系统生命周期各阶段进行风险评估的要点汇总

概述 风险评估应贯穿于评估对象生命周期 各阶段中。评估对象生命周期各阶段中涉及的风险评估原则和方法昆一致的&#xff0c;但由干各阶段实施内容对象、安全需求不同.使得风险评估的对象、目的、要求等各方面也有所不同。在规划设计阶段&#xff0c;通过风险评估以确定评估对…

pytorch笔记(九)转置卷积、膨胀卷积

Transposed Convolution (转置卷积) 别名:Fractionally Strided Convolution (小数步长的卷积)、Deconvolution(逆/反卷积) 作用:upsampling(上采样) 模拟: PS:不是恢复原始值(因为一般情况下矩阵不可逆,无法等式左右两边同乘矩阵的逆得到原始矩阵) 转置卷积的…

为什么分布式系统这么火?

做Java的升职空间有限&#xff0c;可以说如果不想一辈子做程序员&#xff0c;只能往其他方向进行拓展&#xff0c;比如做到产品经理之类的或者技术总监。 可如果还是想做和技术相关的职业&#xff0c;那么架构师是很好的一步。 可是要如何做一名优秀的架构师呢&#xff1f; …

每天五分钟机器学习:经典的机器学习PCA的核心——特征分解技术

本节重点 本节我们将学习特征分解,特征分解是矩阵分析中非常重要的概念,它也可以应用到PCA算法中,本节先讲解什么是特征分解,然后讲解特征分解在PCA算法中的应用。 数学知识准备 如上所示是方差的定义,方差是度量一组数据的分散程度 如上所示是方差的定义,协方差是…

BSP板机支持包、linux启动分析、ARM裸机编程

文章目录一、BSP二、驱动驱动的基本要素三、启动分析1.uboot2.uboot的作用3.uboot相关命令关键的内容&#xff1a;1&#xff09;bootargs&#xff0c;启动参数2&#xff09;启动命令3&#xff09;修改启动延时时间4&#xff09;复位开发板5&#xff09;修改本地IP地址6&#xf…

Matlab群体智能优化算法之大鲹鱼优化算法(GTO)

Giant Trevally Optimizer : A Novel Metaheuristic Algorithm for Global Optimization and Challenging 一、灵感来源二、算法的初始化三、GTO的数学模型  Phase1&#xff1a;广泛搜索  Phase2&#xff1a;选择区域  Phase3&#xff1a;攻击四、流程图五、伪代码六、实…

[附源码]计算机毕业设计四川景区管理系统Springboot程序

项目运行 环境配置&#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…

SWT Table列自适应大小

要实现列自适应大小首先需要保证Table根据窗口拖动而改变大小。 Window中提供setShellStyle可以设置外壳样式。 构造一个新的自定义器对话框&#xff0c;在构造函数中添加setShellStyle(getShellStyle() | SWT.RESIZE);即可改变自定义对话框大小&#xff0c;如&#xff1a; ge…

[附源码]Python计算机毕业设计SSM教师教学质量评价系统(程序+LW)

项目运行 环境配置&#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…

数据卷(Data Volumes)dockerfile

目录一、宿主机与容器之间的文件拷贝1、利用MySQL镜像安装MySQL服务2、从容器中拷贝文件到宿主机3、从宿主机拷贝文件到容器二、数据卷三、数据卷容器四、Dockerfile1、自定义centos&#xff0c;具备vim及ifconfig作用2、自定义tomcat8一、宿主机与容器之间的文件拷贝 1、利用…

Linux虚拟化网络之vlan配置

问题描述&#xff1a; Linux主机划分两个vlan&#xff0c;服务器server1的物理网卡的IP地址为1.1.1.1/24&#xff0c;服务器server2的物理网卡的IP地址为1.1.1.2/24。物理网卡下要虚拟化出来两个Vlan子接口&#xff0c;vlan10中主机的IP地址分别为10.10.10.1/24和10.10.10.2/2…

99%的人都把三层架构和SpringMVC的关系搞错了

99%的人都把三层架构和SpringMVC的关系搞错了&#xff01;&#xff01;&#xff01; 先说结论&#xff0c; 三层架构和SpringMVC的关系就是没有关系。 很多人之前把SpringMVC中的M-Model当作三层架构中的servicedao&#xff08;包括我&#xff09;&#xff0c;这个是一个错误…

前端知识粉碎机

diff算法 Dep的作用是收集观察者以及当数据发生变动时通知观察者去更新。 Dep.notify()通知观察者去更新。 当数据改变时&#xff0c;就会触发setter&#xff0c;然后触发Dep.notify&#xff0c;通知订阅者&#xff0c;比对新旧虚拟节点&#xff0c;判断是否是同类标签&#xf…

Emlog博客文章图片自动加水印插件

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 给Emlog博客的上传图片添加水印可以有效地保护作品版权&#xff0c;有效地打击那些转载文件不留原作者地址的垃圾网站&#xff0c;部分Emlog博主通常都是手动给图片添加水印&#xff0c;…

MySQL学习记录(7)SQL优化

3. SQL优化 3.1、插入数据 3.1.1 insert 如果我们需要一次性往数据库表中插入多条记录&#xff0c;可以从以下三个方面进行优化 insert into tb_test values(1,tom); insert into tb_test values(2,cat); insert into tb_test values(3,jerry); .....&#xff08;1&#xf…

cartgrapher ukf 代码清晰属实不错

文章目录原理UKFSigma and weightUKF AlgorithmUT/UKF/EKF Summarycato_code外围函数检测是否为对称矩阵矩阵的开方根高斯分布UKF 代码实现类预测观测更新点评原理 UKF KF 系列求解&#xff1a; Kalman filter 需要线性模型EKF通过泰勒展开线性化更好的方式线性化 -> Unsc…

【OpenCV学习】第6课:图像模糊(中值滤波,高斯双边滤波)

仅自学做笔记用,后续有错误会更改 理论 中值滤波&#xff1a;对核内数值先进行排序&#xff0c;再取中间那个值 注1&#xff1a;中值滤波属于统计学的排序滤波器 注2&#xff1a;中值滤波对椒盐噪声有很好的抑制作用 高斯双边滤波(美颜磨皮效果一般都是用的这个)&#xff1a…

JAVA中的基本数据类型

文章目录0 写在前面1 特点2 举例说明2.1 数字型2.2 字符型布尔型3 写在最后0 写在前面 Java 语言支持 8 种基本数据类型&#xff1a;byte&#xff0c;short&#xff0c;int&#xff0c;long&#xff0c;float&#xff0c;double&#xff0c;char 和 boolean 1 特点 基本数据…

Java项目:SSM网上外卖订餐管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该项目为前后台项目&#xff0c;分为普通用户与管理员两种角色&#xff0c;前台普通用户登录&#xff0c;后台管理员登录&#xff1b; 普通用户…

区分度评估指标-KS

1.背景 KS指标来评估模型的区分度&#xff08;discrimination&#xff09;&#xff0c;风控场景常用指标之一。本文将从区分度的概念、KS的计算方法、业务指导意义、几何解释、数学思想等多个维度展开分析&#xff0c;以期对KS指标有更为深入的理解认知。 Part 1. 直观理解区…