HarmonyOS实战开发-状态管理、通过使用页面级的状态变量 和应用级的状态变量 来实现应用的状态管理。

介绍

本示例通过使用页面级的状态变量 和应用级的状态变量 来实现应用的状态管理。

效果预览

在这里插入图片描述
使用说明

1.点击首页中的基本类型进入对应页面,点击按钮可以更改圆形的颜色;点击查看源码可以展示基本类型功能效果的源码。

2.点击首页中的数组类型进入对应页面,点击新增元素可以添加数据;点击删除元素可以删除数据,当数据为空时,点击删除会弹出一个提示窗;点击更新数组中的某个元素,可以更改第一条数据的age属性,当数据为空时,同样会弹出一个提示窗;点击查看源码可以展示数组类型功能效果的源码。

3.点击首页中的类对象类型进入对应页面,点击更新对象可以更改对象属性和对象属性中的属性;点击更新对象属性,对象属性数据发生变化;点击更新属性中的属性,对象属性的属性数据发生变化;点击查看源码可以展示类对象类型功能效果的源码。

4.点击首页中的只更新所绑定的组件进入对应页面,点击修改标题和内容,标题和内容数据都发生变化,页面更新标题数据,内容数据不刷新;点击查看源码可以展示类对象类型功能效果的源码。

5.点击单、双向同步进入对应页面,点击设置为粉色按钮,父组件圆形颜色更新,两个子组件颜色同步更新;点击设置为蓝色按钮,子组件A圆形颜色更新,父组件和子组件B颜色不更新;点击设置为红色按钮,子组件B圆形颜色更新,父组件和子组件A圆形颜色同步更新,点击查看源码可以展示单、双向同步功能效果的源码。

6.点击子组件同步父组件的部分内容进入对应页面,点击父组件中的属性1修改数据,子组件中的属性1数据同步,点击子组件的属性1修改数据,父组件中的属性1数据同步,点击查看源码可以展示子组件同步父组件的部分内容功能效果的源码。

7.点击爷孙组件之间状态同步进入对应页面,点击爷组件下拉框组件选择颜色,下拉框文本和圆形颜色改变,孙组件下拉框文本和圆形颜色同步刷新;点击孙组件下拉框选择颜色,下拉框文本和圆形颜色改变,爷组件下拉框文本和圆形颜色同步刷新,点击查看源码可以展示爷孙组件之间状态同步功能效果的源码。

8.点击兄弟组件之间状态同步进入对应页面,点击兄弟A组件下拉框选择颜色,下拉框文本和圆形颜色改变,兄弟B组件下拉框文本和圆形颜色同步刷新,点击兄弟B组件下拉框选择颜色,下拉框文本和圆形颜色改变,兄弟A组件下拉框文本和圆形颜色同步刷新,点击查看源码可以展示爷孙组件之间状态同步功能效果的源码。

9.点击应用内全局数据与UI之间的状态同步进入对应页面,点击修改夜间模式状态和字体大小,当前夜间模式状态以及字体大小发生变化,进入Ability1和Ability2页面,夜间模式状态以及字体大小同步更新;在Ability1界面中改变夜间模式状态和字体大小,夜间模式状态和字体大小发生变化,进入到主页面和Ability2页面,夜间模式状态同步更新,字体大小不变;在Ability2界面中修改夜间模式状态,夜间模式状态发生改变,进入到主页面和Ability1页面,夜间模式状态同步,点击查看源码可以展示应用内全局数据与UI之间的状态同步功能效果的源码。

10.点击Ability内全局数据与UI之间的状态同步进入对应页面,点击修改夜间模式状态和字体大小,当前夜间模式状态以及字体大小发生变化时,进入Page1和Page2以及跨Ability不同步页面,Page1和Page2夜间模式状态以及字体大小同步更新,跨Ability页面不同步更新;在Page1界面中改变夜间模式状态和字体大小,夜间模式状态和字体大小发生变化,进入到主页面、Page2和跨Ability不同步页面,主页面和Page2夜间模式状态同步更新,但是字体不发生变化,跨Ability页面夜间模式状态和字体都不同步更新;在Page2界面中修改夜间模式状态,夜间模式状态发生改变,进入到主页面、Page1页面和跨Ability不同步页面,主页和Page1夜间模式状态同步,跨Ability页面都不同步更新;在跨Ability界面中修改夜间模式状态,夜间模式状态发生改变,进入主页、Page1和Page2页面,夜间模式状态不同步,点击查看源码可以展示Ability内全局数据与UI之间的状态同步功能效果的源码。

工程目录

entry/src/main/ets/
|---commoncomponents
|   |---CodeView.ets                                          // 代码展示组件
|   |---TitleBar.ets                                          // 标题组件
|   |---TitleBarDark.ets                                      // 夜间模式下标题组件
|   |---ViewCodeText.ets                                      // 查看源码文本组件
|---entryability
|   |---EntryAbility.ts     
|---outofsyncability                           
|   |---OutOfSyncAbility.ts              
|---MainAbility
|---pages
|   |---applylevelstagemanagement                             // 应用级状态管理
|   |   |---abilityglobaldatasync                             // Ability内全局数据与UI之间的状态同步             
|   |   |   |---AbilityGlobalDataSync.ets                    
|   |   |   |---AbilityGlobalDataSyncCode.ets                 // Ability内全局数据与UI之间的状态同步主页
|   |   |   |---AbilityOutOfSyncPage.ets                      // 跨Ability页面
|   |   |   |---LocalStorageLinkPage.ets                      // 展示LocalStorageLink效果页面
|   |   |   |---LocalStoragePropPage.ets                      // 展示LocalStorageProp效果页面
|   |   |---applyglobaldatasync                               // 应用内全局数据与UI之间的状态同步
|   |   |   |---ApplyGlobalDataSync.ets
|   |   |   |---ApplyGlobalDataSyncCode.ets                   // 应用内全局数据与UI之间的状态同步主页
|   |   |   |---StorageLinkAbilityPage.ets                    // 展示StorageLinkAbility页面
|   |   |   |---StoragePropAbilityPage.ets                    // 展示StoragePropAbility页面
|   |   |---model             
|   |   |   |---AbilityConfigType.ets                         // Ability参数类型
|   |   |   |---CommonMethods.ets                             // 公用函数启动Ability
|   |---home             
|   |   |---data             
|   |   |   |---HomeData.ets                                  // 首页数据
|   |   |---model             
|   |   |   |---CategoricalDataType.ets                       // 层级类型
|   |   |---Home.ets                                          // 首页
|   |   |---TabContentNavigation.ets                          // Tab内容区组件
|   |---pagelevelstagemanagement                              // 页面级状态管理
|   |   |---multicompomentssync                               // 自定义组件之间的状态同步
|   |   |   |---brothercomponentssync                         // 兄弟组件之间状态同步 
|   |   |   |   |---BrotherComponentSync.ets                 
|   |   |   |   |---BrotherComponentSyncCode.ets              // 兄弟组件之间状态同步首页
|   |   |   |   |---ConsumeBrotherOneComponent.ets            // @Consume状态变量组件
|   |   |   |   |---ConsumeBrotherTwoComponent.ets            // @Consume状态变量组件
|   |   |   |   |---LinkBrotherOneComponent.ets               // @Link状态变量组件
|   |   |   |   |---LinkBrotherTwoComponent.ets               // @Link状态变量组件
|   |   |   |   |---ProvideAndConsumeSync.ets                 // @Privide状态变量组件
|   |   |   |   |---StateAndLinkSync.ets                      // @State状态变量组件
|   |   |   |---data     
|   |   |   |   |---ColorData.ets                             // 颜色数据
|   |   |   |---deepnestcomponentssync                        // 爷孙组件嵌套
|   |   |   |   |---ConsumeDescendentComponent.ets            // @Consume孙组件
|   |   |   |   |---DeepNestComponentsSync.ets                 
|   |   |   |   |---DeepNestComponentsSyncCode.ets            // 爷孙组件首页       
|   |   |   |   |---LinkDescendentComponent.ets               // @Link孙组件
|   |   |   |   |---ProvideAndConsumeSync.ets                 // @Provide爷组件
|   |   |   |   |---StateAndLinkSync.ets                      // @State爷组件
|   |   |   |---model                                
|   |   |   |   |---ColorType.ets                             // 颜色数据类型
|   |   |   |---parentchildcomponentsync                      // 父子组件之间状态同步
|   |   |   |   |---parentchildpartialcontentsync             // 子组件同步父组件部分内容
|   |   |   |   |   |---ObjectLinkComponent.ets               // @ObjectLink子组件
|   |   |   |   |   |---ParentChildPartialContentSync.ets     
|   |   |   |   |   |---ParentChildPartialContentSyncCode.ets // @Observer父组件
|   |   |   |   |---uniandbidirectionsync                     // 单、双向同步
|   |   |   |   |   |---ComponentLink.ets                     // Link组件
|   |   |   |   |   |---ComponentProp.ets                     // Prop组件
|   |   |   |   |   |---UniAndBidirectionSync.ets
|   |   |   |   |   |---UniAndBidirectionSyncCode.ets         // @State父组件
|   |   |---singlecomponentstatevariables                     // 单组件的状态同步
|   |   |   |---decoratedobjecttype                           // 修饰的对象类型
|   |   |   |   |---arraytype                                 // 数组类型
|   |   |   |   |   |---ArrayType.ets
|   |   |   |   |   |---ArrayTypeCode.ets                     // 数组类型源码页
|   |   |   |   |---basetype                                  // 基本类型
|   |   |   |   |   |---BaseType.ets
|   |   |   |   |   |---BaseTypeCode.ets                      // 基本类型源码页
|   |   |   |   |---classobjecttype                           // 对象类型
|   |   |   |   |   |---ClassObjectType.ets
|   |   |   |   |   |---ClassObjectTypeCode.ets               // 对象类型源码页
|   |   |   |---updatetactics                                 // 更新原理
|   |   |   |   |---updateboundcomponent                      // 只更新所绑定的组件
|   |   |   |   |   |---UpdateBoundComponent.ets               
|   |   |   |   |   |---UpdateBoundComponentCode.ets          // 只更新所绑定的组件源码
|---storagelinkability              
|   |---StorageLinkAbility.ts
|---storagepropability
|   |---StoragePropAbility.ts
|---utils
|   |---Logger.ts                                             // 日志文件
|   |---ResourceUtils.ts                                      // 资源转换方法
|   |---StartAbilityUtils.ts                                  // 启动Ability方法

具体实现

  • 查看源码:通过private controller: webView.WebviewController = newwebView.WebviewController()声明一个状态变量,使用this.controller.loadUrl(url)来打开web页面。
  • 基本类型:使用@State声明一个Resource类型的circleColor状态变量,然后通过点击事件根据circleColor的id来改变圆形颜色。
  • 数组类型:使用@State声明一个数组arrayTypeData状态变量,数据元素为newArrayDataType(),通过arrayTypeData.push()方法来新增元素数据,arrayTypeData.splice()方法删除元素,更新指定newArrayDataType()来实现更新某一个元素数据。
  • 类对象类型:使用@Observerd声明一个属性类ChildClass,然后声明一个对象类ParentClass,并将对象的其中一个属性类型设置为属性类,使用@State声明一个类对象数据状态变量classObjectData,更新对象可以通过newParentClass()生成一个对象并赋值来实现,更新对象属性可以通过this.classOjectData.attribute++来实现,更新对象属性的属性可以通过@ObjectLink声明一个状态变量并更新此状态变量的对象属性来实现。
  • 只更新所绑定的组件:使用@State和Private声明一个titleName和content状态变量,通过点击事件修改这两个状态变量。
  • 单、双向同步:父组件使用@State声明一个状态变量circleColor并作为参数给子组件A和子组件B,子组件A通过@Prop接收,子组件B通过@Link来接收,通过点击事件中的this.circleColor= COLOR_DATA.PINK来更改颜色。
  • 子组件同步父组件部分内容:父组件中使用@State声明一个数组状态变量parentData,@Observed声明数组元素的类,父组件向子组件传递parentData的某一个元素数据,子组件通过@ObjectLink来接收,父组件通过this.childObject.attributeType= value来修改元素数据,子组件同步更新,子组件同样通过this.childObjectData.attributeType = value来修改子组件的数据,父组件同步更新。
  • 爷孙组件之间状态同步:爷组件通过@State声明一个控制圆形颜色的状态变量circleColor和控制当前Select组件Index的状态变量currentSelectIndex,逐层传递给子组件给孙组件,通过@Link接收,爷组件通过onSelect事件来修改circleColor和currentSelectIndex,孙组件同样通过onSelect事件来修改circleColor和currentSelectIndex,然后爷组件通过@Provide声明一个控制圆形颜色的状态变量consumeCircleColor和控制当前Select组件Index的状态变量currentSelectIndex,孙组件通过@Consume来接收,爷组件通过onSelect事件来修改circleColor和currentSelectIndex,孙组件同样通过onSelect事件来修改circleColor和currentSelectIndex。
  • 兄弟组件之间状态同步:父组件通过@State声明一个控制圆形颜色的状态变量circleColor和控制当前Select组件Index的状态变量currentSelectIndex,传递给子组件A和子组件B,两者通过@Link接收,子组件A通过onSelect事件来修改circleColor和currentSelectIndex,子组件B同样通过onSelect事件来修改circleColor和currentSelectIndex;然后父组件通过@Provide声明一个控制圆形颜色的状态变量consumeCircleColor和控制当前Select组件Index的状态变量currentSelectIndex,子组件A和子组件B通过@Consume来接收,子组件A通过onSelect事件来修改circleColor和currentSelectIndex,,子组件B同样通过onSelect事件来修改circleColor和currentSelectIndex。
  • 应用内全局数据与UI之间的状态同步:主页、Ability1页面和Ability2页面通过@StorageLink声明一个控制夜间模式的状态变量currentModelStatus,在主页面通过onChange事件中的AppStorage.SetOrCreate(‘currentModelStatus’,this.currentModelStatus)来更改夜间模式的状态,,在Ability1页面和Ability页面通过onClick事件中的this.currentModelStatus= !this.currentModelStatus,主页和Ability2页面通过@StorageLink声明一个控制字体大小的状态变量contentFontSize,Ability1页面通过@StorageProp声明一个控制字体大小的状态变量contentFontSize,主页使用onChange事件中的this.contentFontSize= value和AppStorage.SetOrCreate(‘contentFontSize’, this.contentFontSize)来更改内容字体的大小,Ability1通过onChange事件中的this.contentFontSize= value来修改内容字体大小。
  • Ability内全局数据与UI之间的状态同步:在Entry当中声明一个storage,并通过this.storage.setOrCreate(‘currentModelStatus’,true)和this.storage.setOrCreate(‘contentFontSize’,18)来设置夜间模式状态变量currentModelStatus和字体大小状态变量contentFontSize,然后主页、Page1页面、Page2页面和跨Ability页面通过@LocalStorageLink声明一个控制夜间模式的状态变量currentModelStatus,在主页面通过onChange事件中的this.currentModelStatus= isOn来更改夜间模式的状态,Page1页面、Page2页面和跨Ability页面通过onClick事件中的this.currentModelStatus= !this.currentModelStatus来更改夜间模式的状态,主页、Page1页面和跨Ability页面通过@LocalStorageLink声明一个控制字体大小的状态变量contentFontSize,Page1页面通过@LocalStorageProp声明一个控制字体大小的状态变量contentFontSize,主页使用onChange事件中的this.contentFontSize= value和AppStorage.SetOrCreate(‘contentFontSize’, this.contentFontSize)来更改内容字体的大小,Page2通过onChange事件中的this.contentFontSize= value来修改内容字体大小。

相关权限

不涉及。

依赖

不涉及。

约束与限制

1.本示例仅支持标准系统上运行。

2.本示例已适配API version 9版本SDK,版本号:4.0.5.2。

3.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/UI/StateManagement/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程

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

鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG?u=a42c4946d1514235863bb82a7b2ac128

在这里插入图片描述

鸿蒙 (Harmony OS)开发学习手册→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

一、入门必看

1.应用开发导读(ArkTS)
2………
在这里插入图片描述

二、HarmonyOS 概念→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.系统定义
2.技术架构
3.技术特性
4.系统安全
5…

在这里插入图片描述

三、如何快速入门?→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.基本概念
2.构建第一个ArkTS应用
3…

在这里插入图片描述

四、开发基础知识→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
在这里插入图片描述

五、基于ArkTS 开发→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
在这里插入图片描述

更多了解更多鸿蒙开发的相关知识可以参考:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序实现预约生成二维码

业务需求&#xff1a;点击预约按钮即可生成二维码凭码入校参观~ 一.创建页面 如下是博主自己写的wxml&#xff1a; <swiper indicator-dots indicator-color"white" indicator-active-color"blue" autoplay interval"2000" circular > &…

为什么光伏探勘测绘需要无人机?

随着全球对可再生能源需求的不断增长&#xff0c;光伏产业也迎来了快速发展的机遇。光伏电站作为太阳能发电的主要形式之一&#xff0c;其建设前期的探勘测绘工作至关重要。在这一过程中&#xff0c;无人机技术的应用正逐渐展现出其独特的优势。那么&#xff0c;为什么光伏探勘…

【数据结构】4.List的介绍

目录 1.什么是List 2.常见接口介绍 3.List的使用 1.什么是List 在集合框架中&#xff0c;List是一个接口&#xff0c;继承自Collection。 Collection也是一个接口&#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下&#xff1a; Iterable也是一个接口…

HashMap扩容原理(带源码分析)

HashMap的扩容原理 1.扩容流程图 注&#xff1a;拆分链表的规则 这里拆分链表时的一个比较&#xff1a;e.hash & oldCap 0 意思是&#xff1a;某一个节点的hash值和老数组容量求&运算。如果等于0&#xff0c;当前元素在老数组中的位置就是在新数组中的位置。如果不等…

使用新一代一站式 AI Bot 开发平台扣子coze,搭建我的第一个AI Bot(前端魔法师) ,

目录 1.概述​ 2.功能与优势 3.使用扣子 4.人设与回复逻辑 5.添加插件 6.预览与调试 7.发布bot Store 8.环境大家体验&#xff08;给大家内置了比较屌的插件&#xff09; 9.推荐阅读&#xff1a; 1.概述​ 扣子是新一代一站式 AI Bot 开发平台。无论你是否有编程基础…

面试经典算法系列之二叉树7 -- 二叉树的中序遍历

面试经典算法22 - 二叉树的中序遍历 LeetCode.94 公众号&#xff1a;阿Q技术站 问题描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2]示例 2&#xff1a; 输入&…

【鸿蒙开发】第二十一章 Media媒体服务(二)--- 音频播放和录制

1 AVPlayer音频播放 使用AVPlayer可以实现端到端播放原始媒体资源&#xff0c;本开发指导将以完整地播放一首音乐作为示例&#xff0c;向开发者讲解AVPlayer音频播放相关功能。 以下指导仅介绍如何实现媒体资源播放&#xff0c;如果要实现后台播放或熄屏播放&#xff0c;需要…

稀碎从零算法笔记Day48-LeetCode:三角形最小路径和

题型&#xff1a;DP、二维DP、矩阵 链接&#xff1a;120. 三角形最小路径和 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给定一个三角形 triangle &#xff0c;找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的…

Project Euler_Problem 193_Few Repeated Digits_欧拉筛+容斥公式

解题思路&#xff1a;暴力搜索 代码&#xff1a; void solve() {ll i, j,k,x,y,z,p,q,u,v,l,l1;N 999966663333, NN 1024;//N 1000;double a, b, c,d;M.NT.get_prime_Euler(1000000);l M.NT.pcnt;for (i 1; i < l; i) {u M.NT.prime[i];v M.NT.prime[i 1];x u * …

交叉熵损失函数介绍

交叉熵是信息论中的一个重要概念&#xff0c;它的大小表示两个概率分布之间的差异&#xff0c;可以通过最小化交叉熵来得到目标概率分布的近似分布。 为了理解交叉熵&#xff0c;首先要了解下面这几个概念。 自信息 信息论的基本想法是&#xff0c;一个不太可能的事件发生了…

蓝桥杯:握手问题和小球反弹问题

试题 A: 握手问题 本题总分&#xff1a; 5 分 【问题描述】 小蓝组织了一场算法交流会议&#xff0c;总共有 50 人参加了本次会议。在会议上&#xff0c; 大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手&#xff08;且仅有一次&#x…

FRR-NET:用于弱光图像增强的快速重参数残差网络

很久之前写的文章&#xff0c;前两天才见刊。项目的具体代码因项目原因无法公布&#xff0c;我自己重新训练了一个版本&#xff08;包含两类预训练模型&#xff09;&#xff0c;供初学者参考。本文主要为AB式创新。 文章链接&#xff1a;paper 代码链接&#xff1a;GitHub || …

【QT入门】Qt自定义控件与样式设计之鼠标相对、绝对位置、窗口位置、控件位置

往期回顾 【QT入门】 Qt自定义控件与样式设计之QSlider用法及qss-CSDN博客 【QT入门】Qt自定义控件与样式设计之qss的加载方式-CSDN博客 【QT入门】Qt自定义控件与样式设计之控件提升与自定义控件-CSDN博客 【QT入门】Qt自定义控件与样式设计之鼠标相对、绝对位置、窗口位置、控…

【Unity】Feature has expired(H0041)

【背景】 在一台很久不用的电脑上更新了个人License&#xff0c;并导入了云项目&#xff0c;打开时却报错&#xff1a; 【分析】 网上查说要删缓存等等&#xff0c;试过都不行。重装Hub也不行。 这种环境类型的原因很难从信息入手定位错误。 所以我自己检查项目上有什么问题…

温故知新之-TCP Keepalive机制及长短连接

[学习记录] 前言 TCP连接一旦建立&#xff0c;只要连接双方不主动 close &#xff0c;连接就会一直保持。但建立连接的双方并不是一直都存在数据交互&#xff0c;所以在实际使用中会存在两种情况&#xff1a;一种是每次使用完&#xff0c;主动close&#xff0c;即短连接&…

ChatGPT 和 Elasticsearch:使用 Elastic 数据创建自定义 GPT

作者&#xff1a;Sandra Gonzales ChatGPT Plus 订阅者现在有机会创建他们自己的定制版 ChatGPT&#xff0c;称为 GPT&#xff0c;这替代了之前博客文章中讨论的插件。基于本系列的第一部分的基础 —— 我们深入探讨了在 Elastic Cloud 中设置 Elasticsearch 数据和创建向量嵌…

C语言100道练习题打卡(1)

1 有1&#xff0c;2&#xff0c;3&#xff0c;4四个数字&#xff0c;能组成多少个互不相同且不重复的三位数&#xff0c;都是多少 #include<stdio.h> //有1&#xff0c;2&#xff0c;3&#xff0c;4四个数字&#xff0c;能组成多少个互不相同且不重复的三位数&#xff…

Web端Excel的导入导出Demo

&#x1f4da;目录 &#x1f4da;简介:✨代码的构建&#xff1a;&#x1f4ad;Web端接口Excel操作&#x1f680;下载接口&#x1f680;导入读取数据接口 &#x1f3e1;本地Excel文件操作⚡导出数据&#x1f308;导入读取数据 &#x1f4da;简介: 使用阿里巴巴开源组件Easy Exce…

在Mac中打开终端的3种方法

在使用Mac时&#xff0c;有时需要深入研究设置&#xff0c;或者完成一些开发人员级的命令行任务。为此&#xff0c;你需要终端应用程序来访问macOS上的命令行。下面是如何启动它。 如何使用聚焦搜索打开终端 也许打开终端最简单、最快的方法是通过聚焦搜索。要启动聚焦搜索&a…

Collection与数据结构 二叉树(三):二叉树精选OJ例题(下)

1.二叉树的分层遍历 OJ链接 上面这道题是分层式的层序遍历,每一层有哪些结点都很明确,我们先想一想普通的层序遍历怎么做 /*** 层序遍历* param root*/public void levelOrder1(Node root){Queue<Node> queue new LinkedList<>();queue.offer(root);while (!qu…