1.预备知识

现在有一个需求:
需要编写一套代码,可以将app的内容发布在微信小程序上或者打包成一个apk的安装包。

要完成这个需求,目前可以借助uni-app+HbuilderX来实现。
在使用这个两个工具之前,需要掌握的知识有:

必备知识

  • HTML,CSS的基本使用
  • ES5,ES6语法
  • Vue框架的使用
  • 微信小程序的语法

锦上添花

  • CSS预处理计LESS/SCSS
  • 数据库的CRUD操作

2.前期准备

uni-app官网:https://uniapp.dcloud.io/
官网可以下载到HbuilderX编辑器和查看官方文档,文档需要仔细阅读几遍,因为其中标记了很多开发规范。

3.创建项目

文件->新建->项目
在这里插入图片描述
选择un-iapp,取名字,勾选unicloud云开发,如果没有注册,自行注册并进行实名认证。
在这里插入图片描述
项目创建成功后,点击index.vue页面,按alt+p预览本项目,也可以点击运行在游览器上预览。
在这里插入图片描述
在uni-app官网有介绍uniCloud云开发的基本操作,可以点击进去观看,并跟着官方视频操作
在这里插入图片描述

4.云开发实现数据库的CRUD

4.1 uniCloud数据准备

uniCloud右键->打开uniCloud Web控制台在这里插入图片描述
创建一个服务空间
在这里插入图片描述

新建一个数据表
在这里插入图片描述
表分类里面有很多官方给我们提供的表模板
在这里插入图片描述
添加一条记录
在这里插入图片描述
添加成功
在这里插入图片描述
再多添加几条方便测试
在这里插入图片描述
在表结构里面配置我们的CRUD权限,全部设置为true
在这里插入图片描述
也可以在unicCoud->右键->关联云服务空间后
在这里插入图片描述
在这里插入图片描述

在database->右键->下载所有DB Schema及扩展校验函数后,会有一个json文件里面可以配置
在这里插入图片描述
如果控制台这里选择的“连接本地云函数”,每次配置本地的json文件即可,
如果选中的是“连接云端云函数”,那么每次配置本地json文件后,还要将配置的json文件上传到云端
在这里插入图片描述

4.2 查询获取数据

通过上述4.1的操作,我们已经将数据准备好了,现在需要编写一个界面,从uniCloud云数据库中拿到数据并显示到界面上。

在写界面之前我们需要去插件市场下载uni-ui插件来加快界面的编写
在这里插入图片描述
在这里插入图片描述
新建list页面
在这里插入图片描述
官方文档介绍只需要这几行代码就可以拿到数据,我们把代码复制进去,做简单的修改
在这里插入图片描述

<template>
<view>
	<unicloud-db v-slot:default="{data, loading, error, options}" collection="contacts" >
	<view v-if="error">{{error.message}}</view>
	<view v-else>
	       {{ data}}  
	   </view>  
	 </unicloud-db>  
</view>
</template>

在这里插入图片描述
虽然这里数据成功拿到了,但是控制台一直在报一个错:公共模块uni-id引入公共模块失败
在这里插入图片描述
解决办法:
官方回答:
在这里插入图片描述
真正的文件目录在:
在这里插入图片描述
在这里插入图片描述
更新依赖后多了一段代码:
在这里插入图片描述
到此报错解决!

接下来使用uni-ui来美化一下界面,uni-ui官网有组件说明:https://uniapp.dcloud.io/component/README

修改页面

<template>
<view>
	<unicloud-db v-slot:default="{data, loading, error, options}" collection="contacts" >
	<view v-if="error">{{error.message}}</view>
	<view v-else>
	       <!-- {{ data}} -->
		   <uni-list>
		   	<uni-list-item  v-for="(item,index) in data" :key="item._id" :title="item.name" :note="item.phone" link></uni-list-item>
		   </uni-list>
	   </view>  
	 </unicloud-db>  
</view>
</template>

在这里插入图片描述
界面上效果出来了,但是控制台又报了一个错:
在这里插入图片描述
意思是我们在数据库中存入的数字要是字符型的才行,现在需要修改数据库中的数据为字符。问题解决!

4.3 删除一条数据

代码做如下修改:
在这里插入图片描述
此时长按某一条记录时,会有弹框提示
在这里插入图片描述
点击确认,记录删除
在这里插入图片描述
云数据库中的数据也被删除
在这里插入图片描述

4.4 修改一条数据

新建一个update页面
在这里插入图片描述
list界面绑定一个跳转事件,需要将当前点击的记录的值传递到update页面
在这里插入图片描述
update.vue

<template>
<view>
	<uni-easyinput  v-model="item.name" placeholder="name" />
	<uni-easyinput  v-model="item.phone" placeholder="phone" />
	<button type="default" @click="submit">提交</button>
	<text>{{item}}</text>
</view>
</template>

<script>
export default {
	data() {
		return {
			item:{
				"_id":"",
				"name":"",
				"phone":""
			}
		}
	},
	onLoad({item}) {
		this.item=JSON.parse(item)
	},
	methods: {
		submit(){
			const db = uniCloud.database();
			let item={...item}
			delete item._id
			db.collection('contacts').doc(this.item._id).update(item).then(e=>{
				console.log(e)
			})
		}
	}
}
</script>

在这里插入图片描述

此时修改并没有起作用
在这里插入图片描述
控制台报错
在这里插入图片描述
因为我们的properties对象里面只有id字段,手动将name和phone字段加上
在这里插入图片描述
在这里插入图片描述
修改之后记得要上传DB Schema

再次测试,测试成功
在这里插入图片描述
在这里插入图片描述

4.5 添加一条数据

新建一个添加页

<template>
	<view>
		<uni-easyinput  v-model="item.name" placeholder="name" />
		<uni-easyinput  v-model="item.phone" placeholder="phone" />
		<button type="default" @click="submit">提交</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				item:{
					"name":"",
					"phone":""
				}
			}
		},
		methods: {
			submit(){
				const db = uniCloud.database();
				db.collection('contacts').add(this.item).then(e=>{
					console.log(e)
				})
			}
		}
	}
</script>

写一个按钮跳转到添加页

<navigato
r url="./add/add">
	<text class="addone" >+</text>
</navigator>

测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.完整功能演示

Logo

前往低代码交流专区

更多推荐