【b站咸虾米】chapter5_uniapp-API_新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握

news2024/9/20 5:22:19

课程地址:【新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握】 https://www.bilibili.com/video/BV1mT411K7nW/?p=12&share_source=copy_web&vd_source=b1cb921b73fe3808550eaf2224d1c155

目录

5 API

5.1 页面和路由

5.1.1 uni.navigateTo

5.1.2 uni.redirectTo

5.1.3 uni.reLaunch

5.1.4 uni.switchTab

5.1.5 uni.navigateBack

5.1.6 EventChannel

5.1.7 uni.preloadPage

5.2 onLoad接收页面跳转时的传参

5.2.1 vueroute路由传参

5.2.2 onLoad传参

5.2.3 传递多个参数

5.3 界面

5.3.1 交互反馈

5.3.1.1 uni.showToast消息提示框

5.3.1.2 uni.hideToast

5.3.1.3 uni.showLoading(OBJECT)显示loading提示框

5.3.1.4 uni.hideLoading()

5.3.1.5 uni.showModal(OBJECT)模态弹窗

5.3.1.6 uni.showActionSheet(OBJECT)弹出操作菜单

5.3.2 设置导航条

5.3.3 设置TabBar

5.3.4 其他

5.4 网络

5.4.1 发起请求

5.4.1.1 uni.request(OBJECT)

 5.4.2 uni.request的其他参数

1 timeout

2 data

 3 dataType

4 methods

5.5 案例

5.5.1 list页面

5.5.2 跳转详情页

1 从list页面跳转详情页

2 动态展示详情页数据

3 添加加载效果

4 列表页向详情页传参

 5.5.3 动态展示每条详情下的评论列表

1 评论模块的template

2 样式

3 逻辑

5.6 uniapp数据缓存Storage

5.6.1 uni.setStorage & uni.setStorageSync

1 uni.setStorage 异步

2 uni.setStorageSync

 5.6.2 uni.getStorage & uni.getStorageSync

5.6.3 清除缓存

5.7 总结


5 API

API 概述 | uni-app官网

uniapp和微信小程序的文档是一致的。uniapp的api与微信小程序的api命名保持一致。

5.1 页面和路由

uniapp官网-组件-内置组件-路由和页面跳转-navigator,2种跳转方式:1 navigatei标签;2 uni.navigateTo跳转(js逻辑实现跳转)

uni.navigateTo(OBJECT) | uni-app官网

wx.switchTab(Object object) | 微信开放文档

区别在于微信小程序前面有wx.xxx,uniapp前面有uni.xxxx

5.1.1 uni.navigateTo

uni.navigateTo(OBJECT) | uni-app官网

相当于跳转到某一个页面。

navigate标签实现页面跳转

<navigator url="/pages/demo4/demo4" open-type="redirect">demo4</navigator>

效果

点击demo4,跳转到demo4页面

问题:我想让一个view块点击时实现页面跳转。

方法:给view加一个点击事件,在事件处理函数里用uni.navigateTo方法实现页面跳转。

<view style="height: 100px; width: 200px;background-color: aqua;" @click="goDemo4"> </view>

事件处理函数 

		methods: {
			goDemo4() {
				uni.navigateTo({
					url: '/pages/demo4/demo4'
				})
			}
		}
  • 总结:页面跳转形式
    • 1、navigator标签实现页面跳转
    • 2、uni.navigateTo方法实现页面跳转(在要跳转的view里添加click事件,事件处理函数里使用uni.navigateTo方法)

参数的其他属性

举例

		methods: {
			goDemo4() {
				uni.navigateTo({
					url: '/pages/demo4/demo4',
					success:res=> {
						console.log(res);
					}
				})
			}
		}

5.1.2 uni.redirectTo

uni.navigateTo(OBJECT) | uni-app官网

跳转时关闭当前页面

uni.navigateTo方法,在跳转时,跳转后的页面左上角有箭头,表示可以回到上一个页面。

而uni.redirectTo方法,跳转后的页面左上方没有箭头,即不能回到上一个页面。

5.1.3 uni.reLaunch

uni.navigateTo(OBJECT) | uni-app官网

打开导航页面(tabBar页面)。uni.navigateTo和uni.redirectTo方法不能打开导航页面。

比如项目里的about页面,就是导航页面。只能用uni.reLaunch方法跳转到。

使用

		methods: {
			goDemo4() {
				uni.reLaunch({
					url: '/pages/about/about'
				})
			}
		}

导航页面,比如首页,新闻列表和关于我们(about)是导航页面。

5.1.4 uni.switchTab

uni.navigateTo(OBJECT) | uni-app官网

与uni.reLaunch方法的功能是一致的,但是不能携带参数(uni.reLaunch可以携带参数)

下面num就是url里携带的参数,uni.reLaunch方法可以这样,uni.switchTab不可以。

		methods: {
			goDemo4() {
				uni.reLaunch({
					url: '/pages/about/about?num=3'
				})
			}
		}

5.1.5 uni.navigateBack

uni.navigateTo(OBJECT) | uni-app官网

返回上一个页面

在跳转后的页面中,view里绑定一个click事件,事件处理函数里使用uni.navigateBack返回上一页。

		<view class="" @click="goBack">< 返回上一页
		</view>
		methods: {
			goBack() {
				uni.navigateBack();
			}
		}

效果

点击箭头处,返回首页。

5.1.6 EventChannel

页面通信

5.1.7 uni.preloadPage

有平台差异,就不展开了。

5.2 onLoad接收页面跳转时的传参

5.2.1 vueroute路由传参

在navigator标签的url属性里添加字段wd字段,值为uniapp

<navigator url="/pages/demo4/demo4?wd=uniapp" open-type="redirect">demo4</navigator>

在index首页点击该标签,跳转到demo4页面,可以在地址栏看到成功传值

要想在页面获取到wd字段,可以使用vuerouter。要传递的wd字段在this.$route.query里

因此在生命周期mounted里,打印demo4页面接收的wd值。

		mounted() {
			console.log(this.$route.query.wd);
		}

上面使用navigator标签实现页面跳转,uni.navigateTo方法是一样的,也是在方法的url里添加要传递的字段。

需要兼容小程序

5.2.2 onLoad传参

小程序不支持以上的route路由跳转。

规范:使用小程序的onLoad生命周期,此时onLoad参数即为传递的参数。

		onLoad(e) {
			console.log(e);
		}

总结:可以直接使用onLoad获取传递的参数。

5.2.3 传递多个参数

url的参数用&连接。

<navigator url="/pages/demo4/demo4?wd=uniapp&author=瑶瑶" open-type="redirect">demo4</navigator>

效果

5.3 界面

比如页面提示“操作失败”、“发布成功”等提示信息。

uni.showToast(OBJECT) | uni-app官网

(这里新建一个demo2项目)

5.3.1 交互反馈

5.3.1.1 uni.showToast消息提示框

uni.showToast(OBJECT) | uni-app官网

使用

给图标加了个点击事件,事件处理函数如下

		methods: {
			clickImg() {
				uni.showToast({
					title:"感谢使用uniapp"
				})
			}
		}

点击图标的效果

默认成功的效果

失败效果

			clickImg() {
				uni.showToast({
					title:"操作失败",
					icon: 'error'
				})
			}

上面是H5运行,下面是小程序运行效果。

小程序的显示效果是一样的。

自定义图标路径

			clickImg() {
				uni.showToast({
					title:"操作失败",
					image:'/static/logo.png'
				})
			}

mask,是否显示透明蒙层。点击弹框,其实是显示了整个页面。此时无法点击页面其他位置。

要求点击弹窗时不可跳转demo页面。

此时将mask置为true

			clickImg() {
				uni.showToast({
					title:"操作失败",
					image:'/static/logo.png',
					mask: true
				})
			}

点击弹窗时,不可跳转页面demo

还有加载效果,icon取值为loading,显示加载效果。

none,不显示图标。

显示时间,duration:1500,显示1.5秒,一般设置为此值。

success,成功后的回调函数。一般不这样使用,而是额外使用setTimeout来实现延迟跳转。

			clickImg() {
				uni.showToast({
					title:"操作失败",
					icon: 'loading',
					mask: true,
					duration: 1000
				}),
				setTimeout(()=>{
					uni.navigateTo({
						url:'/pages/demo/demo'
					})
				},1500)
			}

执行完uni.showToast方法后,在1.5秒后跳转demo页面。

fail,失败的回调函数。

complete,接口调用结束的回调函数。

5.3.1.2 uni.hideToast

尺寸                                                                                                                                                    如果规定时间内没有取消掉,那么可以使用uni.hideToast隐藏                                                                                                              

5.3.1.3 uni.showLoading(OBJECT)显示loading提示框

uni.showToast(OBJECT) | uni-app官网

显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。

5.3.1.4 uni.hideLoading()

uni.showToast(OBJECT) | uni-app官网

5.3.1.5 uni.showModal(OBJECT)模态弹窗

显示模态弹窗,可以只有一个确定按钮,也可以同时有确定和取消按钮。类似于一个API整合了 html 中:alert、confirm。

有title、content、cancelText、cancelColor等属性

5.3.1.6 uni.showActionSheet(OBJECT)弹出操作菜单

uni.showToast(OBJECT) | uni-app官网

 示例

uni.showActionSheet({
	itemList: ['A', 'B', 'C'],
	success: function (res) {
		console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
	},
	fail: function (res) {
		console.log(res.errMsg);
	}
});

自底部向上弹出操作菜单。

跟前面的组件picker底部选择器的作用是类似的。

5.3.2 设置导航条

uni.setNavigationBarTitle(OBJECT) | uni-app官网

导航条,就是下图最上方的uni-app区域

pages.json 页面路由 | uni-app官网

设置导航栏背景色,在pages.json中进行设置

		{
			"path" : "pages/demo/demo",
			"style" : 
			{
				"navigationBarTitleText" : "demo",
				"navigationBarBackgroundColor": "#c00", //导航栏背景色
				"enablePullDownRefresh" : false
			}
		}

效果 

使用uniapp的api设置导航条属性,有以下方法,用于设置导航条1标题、2背景色(前景色(文字颜色)只能使用黑色或白色)、3显示加载效果(转圈)、4隐藏加载效果、5隐藏返回首页按钮(平台差异大,不建议使用),在当前页面的onLoad方法中进行调用,来对当前页面的导航条进行设置。

uni.setNavigationBarTitle(OBJECT)

uni.setNavigationBarColor(OBJECT)

uni.showNavigationBarLoading(OBJECT)

uni.hideNavigationBarLoading(OBJECT)

uni.hideHomeButton(OBJECT)

#

设置背景色功能,方便开发调试。

5.3.3 设置TabBar

TabBar设置见2.4.13【b站咸虾米】chapter1&2_uniapp介绍与uniapp基础_新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握_uniapp 打包微信app 配置-CSDN博客

对TabBar的内容、样式、隐藏、显示、某一项tabBar的右上角添加文本,显示tabBar某一项的右上角红点或隐藏、监听中间按钮的点击事件(只有app支持,平台差异大)。p39。

uni.setTabBarItem(OBJECT)

uni.setTabBarStyle(OBJECT)

uni.hideTabBar(OBJECT)

uni.showTabBar(OBJECT)

uni.setTabBarBadge(OBJECT)

uni.removeTabBarBadge(OBJECT)

uni.showTabBarRedDot(OBJECT)

uni.hideTabBarRedDot(OBJECT)

uni.onTabBarMidButtonTap(CALLBACK)

5.3.4 其他

其他的东西有需要可以去看文档。

uni.setBackgroundColor(OBJECT) | uni-app官网

5.4 网络

uni.request(OBJECT) | uni-app官网

5.4.1 发起请求

uni.request(OBJECT)

uni.configMTLS(OBJECT)

5.4.1.1 uni.request(OBJECT)

发起网络请求。

api:应用程序接口,Application Programming Interface

网上的免费api接口:随机小狗图片https://dog.ceo/api/breeds/image/random

ApiPost软件,测试接口

每个接口返回的对象不一样,这根据个人的习惯。

举例

注意:1 uni.request的使用,url,然后success回调函数,可以接收接口返回的值;

2 uni.showLoading,在发起请求前使用。在请求成功后,在success回调中使用uni.hideLoading方法关闭加载效果。

<template>
	<view>
		<image :src="picUrl" mode="aspectFill" @click="getPicUrl"></image>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				picUrl: ""
			}
		},
		methods: {
			getPicUrl() {
				uni.showLoading({
					title: "数据加载中"
				});
				uni.request({
					url: "https://dog.ceo/api/breeds/image/random",// 网络地址,api,使用后端完成
					success:res=>{
						console.log(res);
						this.picUrl = res.data.message;
						uni.hideLoading();//请求成功后隐藏加载效果
					}// 接收的回调函数
				})
			}
		},
		onLoad() {
			this.getPicUrl();
		}
	}
</script>

<style>

</style>

效果

点击图片,随机加载一张狗狗照片

(???,我不是猫门的吗) 

 5.4.2 uni.request的其他参数

1 timeout

请求超时

设置超时时间。

注意是number类型

				uni.request({
					url: "https://dog.ceo/api/breeds/image/random",// 网络地址,api,使用后端完成
					timeout:3000,
					success:res=>{
						console.log(res);
						this.picUrl = res.data.message;
					},// 接收的回调函数
					fail: err=> {
						console.log(err);
					},
					complete: ()=> {
						// 请求成功或失败都要隐藏加载效果
						uni.hideLoading();						
					}
				})

2 data

带传参的接口:随机小猫咪图片https://api.thecatapi.com/v1/images/search?limit=1

换接口的话,一定要自己打印看一下,因为可能新接口数据可能就变了。

可以看出,这次返回的data里有个数组。因此要用v-for来显示图片。

示例

这个v-for是我实现的,老师实现的话外层有个v-for的view,里面是item的image。

这里注意,api接口可以传参,这里的参数是limit=1.

<template>
	<view>
		<image v-for="item in picUrl" :src="item.url" mode="aspectFill" @click="getPicUrl"></image>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				picUrl: []
			}
		},
		methods: {
			getPicUrl() {
				uni.showLoading({
					title: "数据加载中"
				});
				uni.request({
					url: "https://api.thecatapi.com/v1/images/search?limit=2",// 网络地址,api,使用后端完成
					timeout:3000,
					success:res=>{
						console.log(res);
						this.picUrl = res.data;
					},// 接收的回调函数
					fail: err=> {
						console.log(err);
					},
					complete: ()=> {
						// 请求成功或失败都要隐藏加载效果
						uni.hideLoading();						
					}
				})
			}
		},
		onLoad() {
			this.getPicUrl();
		}
	}
</script>
<style>
</style>

效果

传参有2种写法,

写法1:在url后。

写法2:在参数data中添加传递的参数。

有的传参就不是url后面+?+字段=值,而是通过/进行分割,比如有道云。

比如有30条数据,在原本url基础长+/1,则会返回第1条数据。具体就不展开了。

 3 dataType

默认是json,也有text方式的,大多数都是json。

4 methods

请求发送的类型。

get和post请求的区别(面试题)

methods值也就是请求的类型,要跟后端沟通。

网络这部分暂时只讲uni.request这个请求。后面的其他知识这里就不讲了。

5.5 案例

5.5.1 list页面

https://jsonplaceholder.typicode.com

list页面实现获取列表详情展现到页面

接口返回的data是个数据,每个元素包括body和title,以及id等属性。

实现

<template>
	<view class="out">
		<!-- 并且有id作为唯一标识符 -->
		<view class="row" v-for="item in listArr" :key="item.id">
			<view class="title">{{ item.title }}
			</view>
			<view class="content">{{ item.body }}
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				listArr: []
			}
		},
		methods: {
			getData() {
				uni.request({
					url: "https://jsonplaceholder.typicode.com/posts",
					success: res=> {
						console.log(res);
						this.listArr = res.data;
					}
					
				})
			}
		},
		onLoad() {
			this.getData();
		}
	}
</script>

<style>
.out{
	padding: 50px 30px;
	.row {
		padding: 20px 0;
		border-bottom: 1px dotted #e4e4e4;
		.title{
			font-size: 30px;
			padding-bottom: 15px;
			color:#333;
		}
		.content {
			font-size: 14px;			
		}
	}
}
</style>

其实跟5.4.2.2差不多了。

效果

5.5.2 跳转详情页

1 从list页面跳转详情页

跳转到新闻列表的详情页detail。

实现list页面向detail页面的跳转,使用uni.navigateTo。

一般布局改完了,就不再对template里的标签元素进行更改了。

给list的view添加点击事件。

详情页的参数是/posts/1(其实就是list页面请求的第一条数据)

list页面代码

<template>
	<view class="out">
		<!-- 并且有id作为唯一标识符 -->
		<view class="row" v-for="item in listArr" :key="item.id" @click="clickItem">
			<view class="title">{{ item.title }}
			</view>
			<view class="content">{{ item.body }}
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				listArr: []
			}
		},
		methods: {
			getData() {
				uni.request({
					url: "https://jsonplaceholder.typicode.com/posts",
					success: res=> {
						console.log(res);
						this.listArr = res.data;
					}
					
				})
			},
			// 点击跳转详情
			clickItem() {
				uni.navigateTo({
					url:"/pages/detail/detail"
				})
				
			}
		},
		onLoad() {
			this.getData();
		}
	}
</script>

<style>
.out{
	padding: 50px 30px;
	.row {
		padding: 20px 0;
		border-bottom: 1px dotted #e4e4e4;
		.title{
			font-size: 30px;
			padding-bottom: 15px;
			color:#333;
		}
		.content {
			font-size: 14px;			
		}
	}
}
</style>

2 动态展示详情页数据
3 添加加载效果
4 列表页向详情页传参

传参通过uni.navigateTo实现。

list页面,点击事件添加所点击信息的id,通过uni.navigateTo拼接到url中,传递给detail页面。

url传参

detail页面对id进行获取,在onLoad中获取。

然后在请求接口的url里拼接获取到的id

然后就实现了点击列表的每条数据,都可以跳转到对应的详情页面。

 5.5.3 动态展示每条详情下的评论列表

JSONPlaceholder - Free Fake REST API

详情

实现 

1 评论模块的template

注意:评论模块还是在detail详情页里,即在具体的新闻信息下面

<template>
	<view class="">
		<view class="detail">
			<view class="title">{{ objData.title}}</view>
			<view class="content">{{ objData.body }}</view>
		</view>
		<view class="comment">
			<view class="text">评论</view>
			<view class="row">
				<view class="top">
					<view class="name">名称</view>
					<view class="email">邮箱</view>
				</view>
				<view class="body">评论的内容</view>
			</view>
		</view>
	</view>
</template>
2 样式
.comment {
	padding: 30px;
	background: #f8f8f8;
	.text {
		font-size: 46px;
		margin-bottom: 30px;
		
	}
	.row {
		border-bottom: 1px solid #e8e8e8;
		padding: 20px, 0;
		.top {
			display: flex;
			justify-content: space-between;
			font-size: 22px;
			color: #999;
			padding-bottom: 10px;
		}
		.body {
			font-size: 28px;
			color: #555;
		}
	}
}

效果

3 逻辑

注意:评论是根据id来的,这个id是公用的,不只可以查询具体的新闻详情,还可以查询新闻详情下对应的评论。

注意:url用一对反引号``,变量用${}包裹,例如url:`https://jsonplaceholder.typicode.com/posts/${this.id}/comments` 

使用这种方式就不需要使用加号来拼接变量了,例如url:"https://jsonplaceholder.typicode.com/posts/"+this.id,

实现

首先是获取评论的方法

注意这里的url形式,与获取详情的url不同。

			getComments() {
				uni.request({
					url:`https://jsonplaceholder.typicode.com/posts/${this.id}/comments`,
					success: res=> {
						console.log(res);
						this.comments = res.data;
					}
				})
			},

且初始化评论变量

		data() {
			return {
				objData: {},
				id: 1,
				comments: []
			}
		},

且方法要在onLoad里调用

		onLoad(e) {	
			this.id = e.id;
			this.getDetail();
			this.getComments();
		}

最后修改一下template里的数据

		<view class="comment">
			<view class="text">评论</view>
			<view class="row" v-for="item in comments" :key="item.id">
				<view class="top">
					<view class="name">{{ item.name }}</view>
					<view class="email">{{ item.email }}</view>
				</view>
				<view class="body">{{ item.body }}</view>
			</view>
		</view>

效果

这里老师用的字体单位都是rpx,我用的都是px,所以字体会变大很多。这不重要。

问题:有的新闻评论很多,加载比较慢

解决:添加加载效果。这里就不加了。

 完整detial页面代码

<template>
	<view class="">
		<view class="detail">
			<view class="title">{{ objData.title}}</view>
			<view class="content">{{ objData.body }}</view>
		</view>
		<view class="comment">
			<view class="text">评论</view>
			<view class="row" v-for="item in comments" :key="item.id">
				<view class="top">
					<view class="name">{{ item.name }}</view>
					<view class="email">{{ item.email }}</view>
				</view>
				<view class="body">{{ item.body }}</view>
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				objData: {},
				id: 1,
				comments: []
			}
		},
		methods: {
			getComments() {
				uni.request({
					url:`https://jsonplaceholder.typicode.com/posts/${this.id}/comments`,
					success: res=> {
						console.log(res);
						this.comments = res.data;
					}
				})
			},
			getDetail() {
				uni.showLoading({
					title:'数据加载中',
					mask: true
				})
				uni.request({
					url:"https://jsonplaceholder.typicode.com/posts/"+this.id,
					success: res=>{
						console.log(res);
						// debugger;
						this.objData = res.data;
						console.log(this.id);
					},
					complete: res=> {
						uni.hideLoading();
					}
				})
			}			
		},
		onLoad(e) {	
			this.id = e.id;
			this.getDetail();
			this.getComments();
		}
	}
</script>

<style>
.detail {
	padding: 20px 0;
	border-bottom: 1px dotted #e4e4e4;
	.title {
		font-size: 30px;
		padding-bottom: 15px;
		color:#333;
	}
	.content {
		font-size: 14px;			
	}
}
.comment {
	padding: 30px;
	background: #f8f8f8;
	.text {
		font-size: 46px;
		margin-bottom: 30px;
		
	}
	.row {
		border-bottom: 1px solid #e8e8e8;
		padding: 20px, 0;
		.top {
			display: flex;
			justify-content: space-between;
			font-size: 22px;
			color: #999;
			padding-bottom: 10px;
		}
		.body {
			font-size: 28px;
			color: #555;
		}
	}
}
</style>

5.6 uniapp数据缓存Storage

uni.setStorage(OBJECT) @setstorage | uni-app官网

数据缓存非常重要,是一个永久化的存储,有助于在页面间跳转把一些参数进行存储,比如登陆信息、用户信息存储在本地。随便一个网站都有数据缓存,比如百度,在检查->Application中。

这有助于在跳转其他页面的时候直接读取缓存信息。

5.6.1 uni.setStorage & uni.setStorageSync

将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。

uni.setStorage:异步接口,有success参数。

uni.setStorageSync:同步接口,没有success参数。

其他方法也是,每个异步方法都对应有一个同步方法。

1 uni.setStorage 异步

在首页index的onLoad方法里使用uni.setStorage方法

		onLoad() {
			uni.setStorage({
				key: "demo",
				data: 123123,
				success:res=> {
					console.log(res)
				}
			})
		},

效果

可以看到,设置成功,且打印成功

2 uni.setStorageSync

其实没有必要知道success,所以用uni.setStorageSync就可以了。

		onLoad() {
			uni.setStorageSync('storage_key', 'hello');
		},

效果

无论怎么刷新,依然存在。即使关掉页面,再次打开的时候在Local Storage里依然存在,但是Session就不一样了,页面关掉就没了。

Local Storage用来记录登录信息、用户信息等页面非重要信息。

 5.6.2 uni.getStorage & uni.getStorageSync

uni.getStorage: 从本地缓存中异步获取指定 key 对应的内容。。

uni.getStorageSync: 从本地缓存中同步获取指定 key 对应的内容。

		onLoad() {
			uni.setStorageSync('storage_key', 'hello');
			let mykey = uni.getStorageSync('storage_key');
			console.log(mykey);
		},

效果

5.6.3 清除缓存

uni.removeStorage(OBJECT)

uni.removeStorageSync(KEY)

uni.clearStorage()

uni.clearStorageSync()

搜索记录,在app上的搜索,一般都会存储在缓存中。

 uni.removeStorageSync(KEY),清除某一项缓存记录。

uni.clearStorageSync():清理本地所有缓存。谨慎使用。

5.7 总结

uniCloud,云存储,可以不借助后端语言,去部署后台程序,前端进行调用就行。

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

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

相关文章

pytest钩子函数-pytest_runtest_logreport提取测试用例相关信息

问题&#xff1a;想在每个日志中记录测试用例开始结束时间&#xff0c;获取到测试用例的名称。 解决办法&#xff1a;使用钩子pytest_runtest_logreport 在pytest中&#xff0c;想要在conftest.py文件中获取正在运行的测试用例的名称&#xff0c;可以使用pytest_runtest_logre…

云HIS支持连锁集团化管理,1+N模式,支撑运营,管理,决策多位一体

目录 云HIS系统特色 使用简易化 连锁集团化 可扩展化 系统描述 云HIS系统优势 &#xff08;1&#xff09;客户/用户角度 &#xff08;2&#xff09;开发/运维角度 &#xff08;3&#xff09;成功应用案例 HIS分系统&#xff08;HIS子系统&#xff09; 1、医疗业务子…

马思纯后悔未反击伤害,如今瘦身重现巅峰颜值。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 近期&#xff0c;电影《热辣滚烫》在各大院线火热上映&#x…

阿里开源的Java诊断利器Arthas

一.什么是Arthas 1.为什么需要Arthas 通常&#xff0c;本地开发环境无法访问生产环境。如果在生产环境中遇到问题&#xff0c;则无法使用 IDE 远程调试。更糟糕的是&#xff0c;在生产环境中调试是不可接受的&#xff0c;因为它会暂停所有线程&#xff0c;导致服务暂停。 开…

第3集《灵峰宗论导读》

《灵峰宗论》导读。诸位法师&#xff0c;诸位同学&#xff0c;阿弥陀佛&#xff01;&#xff08;阿弥陀佛&#xff01;&#xff09; 请大家打开讲义第5面&#xff0c;悟道。 这一科我们是说明论主略史&#xff0c;在这一科当中&#xff0c;我们根据弘一大师所编的《蕅益大师年…

解析ChatGPT Plus相比chatgpt3.5有哪些优势

「ChatGPT Plus」提供更出色的对话体验和更广泛的应用能力&#xff0c;学生可以用来写作、职场人也可以用来写计划书、策划书等等&#xff0c;并且问它一些问题比搜索引擎好用多了简直。但普通人使用起来有一点门槛&#xff0c;并且升级4.0也难住了许多爱好者。 ChatGPT主要功能…

python 基础知识点(蓝桥杯python科目个人复习计划52)

今日复习内容&#xff1a;还是做题 例题1&#xff1a;四元组问题 问题描述&#xff1a; 从小学开始&#xff0c;小明就是一个非常喜欢数学的孩子。他喜欢用数学的方式解决各种问题。在他的高中时期&#xff0c;他遇到了一个非常有趣的问题&#xff0c;那就算给定一个长度为n…

Webserver解决segmentation fault(core dump)段错问问题

前言 在完成了整个项目后&#xff0c;我用make命令编译了server&#xff0c;当我运行./server文件时&#xff0c;出现了段错误 在大量的代码中找出错因并不是一件容易的事&#xff0c;尤其是对新手程序员来说。而寻找bug的过程就像是侦探调查线索追查凶手一样&#xff0c;我们…

vite搭配vue2创建工程

一、安装vite npm init vite2.8.0 vite默认支持的是vue3&#xff0c; 这里选择框架和版本vanilla&#xff0c; 方便以后自己安装vue2. 二、修改package.json 默认生成的pacakage.json文件 {"name": "vite-project","private": true,"v…

AI对话系统app开源

支持对接gpt&#xff0c;阿里云&#xff0c;腾讯云 具体看截图 后端环境&#xff1a;PHP7.4MySQL5.6 软件&#xff1a;uniapp 废话不多说直接上抗揍云链接&#xff1a; https://mny.lanzout.com/iKFRY1o1zusf 部署教程请看源码内的【使用教程】文档 欢迎各位转载该帖/源码

企业过二级等保采购哪家堡垒机好?

企业常见过等保&#xff0c;一般是指等保二级或者三级。这不2024开年&#xff0c;不少企业在问&#xff0c;过二级等保采购哪家堡垒机好&#xff1f;电话多少&#xff1f;这里我们小编就给大家毛遂自荐一下吧&#xff01; 企业过二级等保采购哪家堡垒机好&#xff1f; 【回答】…

2024首场沙龙|上海 · 得物技术沙龙-「稳定生产」专场报名开启!

在互联网业界&#xff0c;伴随业务需求更新、用户流量增长、创新技术迭代&#xff0c;稳定性一直是十分复杂且极具挑战性的课题。近年业界发生较多Bad case&#xff0c;得物技术团队迎难而上&#xff0c;通过制定年度全局目标、持续技术创新、深挖产线问题、严控内建质量及文化…

第四十四回 杨雄醉骂潘巧云 石秀智杀裴如海-python驱动关系型数据库

石秀在杨雄家帮忙&#xff0c;发现杨雄的妻子潘巧云跟她的师兄、和尚裴如海有情况。 潘巧云以到寺里还愿的名义&#xff0c;去见裴如海。两人见面后&#xff0c;此处省略三百字。潘巧云说晚上如果杨雄不在家&#xff0c;就烧夜香为讯号&#xff0c;你可以来。你再找一个和尚提…

llm的inference(二)

文章目录 Tokenizer分词1.单词分词法2.单字符分词法3.子词分词法BPE(字节对编码&#xff0c;Byte Pair Encoding)WordPieceUnigram Language Model(ULM) embedding的本质推理时的一些指标参考链接 Tokenizer 在使用模型前&#xff0c;都需要将sequence过一遍Tokenizer&#xf…

AI智能分析网关V4智慧工厂视频智能监管与风险预警平台建设方案

一、背景需求分析 1&#xff09;随着信息技术的迅猛发展和制造业竞争的加剧&#xff0c;智慧工厂成为了推动制造业转型升级的重要引擎。智慧工厂解决方案通过整合物联网、人工智能、大数据分析等先进技术&#xff0c;实现生产过程的智能化、自动化和高效化&#xff0c;为企业提…

Nginx——安装和反向代理

Nginx安装与应用 1.1 Nginx介绍 Nginx 是一个高性能的HTTP和反向代理服务器,特点是占有内存少&#xff0c;并发能力强 Nginx可以作为静态页面的web服务器&#xff0c;同时还支持CGI协议的动态语言&#xff0c;比如perl、php等。但是不支持java。Java程序只能通过与tomcat配合…

Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件

文章目录 前言1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透&#xff0c;将WebDav服务暴露在公网3.1 安装cpolar内网穿透3.2 配置WebDav公网访问地址 4. 映射本地盘符访问 前言 在Windows上如何搭建WebDav&#xff0c;并且结合cpolar的内网穿透工具实现在公网访…

sqli-labs(less-46)order by 注入

我们打开sql-labs的第46关然后在输入框内输入?id1时会发现页面没有任何的变化&#xff0c;此时我们用Visual Studio Code查看第46关的代码 此时我们发现sql语句是$sql "SELECT * FROM users ORDER BY $id"; &#xff0c;所以现在我们需要了解一下order by语句的作…

防御保护笔记3

内容安全 攻击可能只是一个点&#xff0c;防御需要全方面进行 DFI和DPI技术 --- 深度检测技术 DPI --- 深度包检测技术 --- 主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对 数据包的内容进行识别。&#xff08;应用层&am…

Python服务器监测测试策略与工具:确保应用的高可用性!

在构建高可用性的应用程序时&#xff0c;服务器监测测试是至关重要的一环。Python作为一种强大的编程语言&#xff0c;提供了丰富的工具和库来帮助我们进行服务器监测测试。本文将介绍一些关键的策略和工具&#xff0c;帮助你确保应用的高可用性。 1. 监测策略的制定&#xff…