当前位置: 首页 > news >正文

做全景的网站天水市秦州区建设局网站

做全景的网站,天水市秦州区建设局网站,wordpress企业模板,wordpress编辑文字内容文章目录 数据持久化简述基本使用与封装测试用例参考 数据持久化简述 数据持久化就是将内存数据通过文件或者数据库的方式保存到设备中。HarmonyOS提供两两种持久化方案#xff1a; Preferences#xff1a;主要用于保存一些配置信息#xff0c;是通过文本的形式存储的 Preferences主要用于保存一些配置信息是通过文本的形式存储的在使用中会将文本中的数据全量加载到内存中不太适合存储大量数据的场景。数据库分为两种一种是非关系型数据库数据是键值对的形式存储另外一种事关系型数据库数据是行和列的形式存储提供一个系列的增删改查等SQL操作适合数据复杂的场景比如聊天会话记录等等。 基本使用与封装 Preferences提供了获取实例、读、取、删对应操作的方法 getPreferences(context,name)获取Preferences实例name是存储的文件名get(k)通过key获取value值getAll()获取文件所有的值put(k,v)添加值同一个key会将之前的值覆盖掉需要通过flush()刷新到文件中delete(k)通过key删除对应的value值clear()删除所有的存储值。 注意以上方法都是异步的。 通常会在EntryAbility#onCreate()方法中创建实例其中context便是EntryAbility的上下文获取preferences 实例就可以对数据增删改查操作。 // 导入包 import dataPreferences from ohos.data.preferences // 获取实例 let preferences dataPreferences.getPreferences(context, this.preferencesName)下面对preferences 进行封装基本思路 在获取preferences实例后会将其保存单例中这个单例是GlobalContext方便后期可以通过单例直接获取实例由于get()返回值类型是不确定性定义一个联合类型的别名ValueType 来接收。 const TAG PreferencesUtils // 默认文件名可以在构造函数进行修改 const PREFERENCES_NAME yiPreferences const KEY_PREFERENCES preferences type ValueType number | string | boolean | Arraynumber | Arraystring | Arrayboolean;export class PreferencesUtils{// preferences的文件名private preferencesName: string PREFERENCES_NAME// 用于获取preferences实例的key值保存到单例中private keyPreferences: string KEY_PREFERENCESconstructor(name: string PREFERENCES_NAME, keyP: string KEY_PREFERENCES) {this.preferencesName namethis.keyPreferences keyP}createPreferences(context: Context): PromisedataPreferences.Preferences {let preferences dataPreferences.getPreferences(context, this.preferencesName)GlobalContext.getContext().setObject(this.keyPreferences, preferences)return preferences}getPreferences(): PromisedataPreferences.Preferences {return GlobalContext.getContext().getObject(KEY_PREFERENCES) as PromisedataPreferences.Preferences}async get(key: string, def?: ValueType): PromiseValueType {return (await this.getPreferences()).get(key, def)}async getAll(): PromiseObject {let preferences await this.getPreferences()return preferences.getAll()}async put(key: string, value: ValueType): Promisevoid {let promise await this.getPreferences().then(async (p) {await p.put(key, value)p.flush();}).catch((err){Logger.d(TAG, err)})return promise}async delete(key: string): Promisevoid {return (await this.getPreferences()).delete(key)}async clear(): Promisevoid {return (await this.getPreferences()).clear()}}export default new PreferencesUtils()在EntryAbility#onCreate()方法初始化 export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {PreferencesUtils.createPreferences(this.context)} } GlobalContext export default class GlobalContext {private constructor() { }private static instance: GlobalContext;private _objects new Mapstring, Object();public static getContext(): GlobalContext {if (!GlobalContext.instance) {GlobalContext.instance new GlobalContext();}return GlobalContext.instance;}getObject(value: string): Object | undefined {return this._objects.get(value);}setObject(key: string, objectClass: Object): void {this._objects.set(key, objectClass);} }测试用例 通过异步async 和await来直接获取操作结果也可以在then方法回调中获取结果。 Component Entry struct PreferencesPage {State text: string aboutToAppear() {PreferencesUtils.put(username, Harden)PreferencesUtils.put(age, 28)PreferencesUtils.put(isStaff, true)}build() {Column() {Text(this.text).width(100%).height(60)Row() {Button(get).onClick(async () {this.text await PreferencesUtils.get(username) as string})Button(getAll).onClick(async () {this.getAll()})Button(put).onClick(async () {await PreferencesUtils.put(username, Kobe)await PreferencesUtils.put(age, 28)await PreferencesUtils.put(isStaff, false)this.getAll()})Button(delete).onClick(async () {await PreferencesUtils.delete(isStaff)this.getAll()})Button(clear).onClick(async () {await PreferencesUtils.clear()this.getAll()})}.width(100%).justifyContent(FlexAlign.Center)}}async getAll() {let v await PreferencesUtils.getAll() as Objectthis.text JSON.stringify(v)} } 参考 https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101667367018821971?ha_linkereyJ0cyI6MTcwMjM5NzEzNzM3MywiaWQiOiI4MmM3ZTI1MmFmMDJlMDZiODBmOGU1ZDM5ZTI5YmMyOCJ9
http://www.dnsts.com.cn/news/191817.html

相关文章:

  • 湘潭网站建设厦门网站制作网站首页设计欣赏
  • 做网站需要做需求分析吗360浏览器直接进入网站
  • 图片 网站源码 采集主机类型wordpress
  • 安溪县住房和城乡规划建设局网站网站主页面布局怎么做
  • 上海网站建设升级搜索引擎营销的方法有哪些
  • 网站推广郑州免费白嫖国外服务器app
  • 网站构建的基本流程五个环节《传奇世界》官网
  • 个体工商户经营范围做网站电子商务这个专业好吗
  • 通化市网站建设网站建设案例收费情况
  • 天津网站制作培训马蜂窝旅游网站怎么做
  • 企业网站建设优化广东深圳是一个城市吗
  • 大型网站开发协调如何入侵网站后台密码
  • 哪家网站推广做的好辽宁城乡住房建设厅官网证书查询
  • 大连市建设工程老网站电子商务平台网站建设方式
  • 北京赛车网站开发河南网站建设 网站制作 网站设计
  • 黄石港区建设局网站网站开发介绍ppt
  • 网站建设彳金手指排名网页设计公司背景
  • 关于做电影的网站设计垦利县建设局网站
  • 云南省建设厅网站二级建造师用旧手机做网站服务器
  • 论坛静态网站源码免费的简历制作
  • 潍坊仿站定制模板建站上海百度推广优化公司
  • 宝塔面板做网站不能打开PHP显示404大连关键词快速排名
  • 网站开发 图形验证码鹏鹞网站页面代码
  • 建站收入企业档案网站建设
  • 福清市建设局官方网站建网站要多少钱 东莞
  • 河南联通 网站备案建立什么船籍港
  • 电子商务网站会员体系wordpress 导航文字图片
  • 看网站搜什么关键词苏州本地网站有哪些
  • 建设银行网站注销吗自建站怎么推广
  • 帝国cms网站地图xml做网站的电脑配置