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

有哪些好的做网站公司好网站开发设计定制

有哪些好的做网站公司好,网站开发设计定制,网站设计 广西,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.w-s-a.com/news/649984/

相关文章:

  • 龙岩天宫山索道多少钱河南网站排名优化哪家好
  • 北京做网站设计程序员和网站开发
  • 个人 做自媒体 建网站图片制作成视频的手机软件
  • h5 建站网站 移动端重庆潼南网站建设价格
  • 商企在线营销型网站怎么做时光网站
  • 网站建设方案论文1500竞价托管哪家便宜
  • 使用cdn的网站宣武网站建设
  • 营销型网站怎么建设企业网站Wap在线生成
  • 网站建设服务费应该做到什么科目广州网页制作服务商
  • 网站显示500错误怎么解决方法店面设计模板
  • 网站备案icp文化传媒有限公司
  • 北京企业建站模板微信公众号商城怎么制作
  • 制作网站 公司简介大型做网站的公司
  • 北京网站开发建设南昌网站小程序开发
  • 网站如何做ip签名图片宁波互联网
  • 中山小榄网站建设长沙网络营销品牌排名
  • 推广优化厂商联系方式网站推广教程优化整站
  • 为外国企业做中文网站建设网站建设单位哪家好
  • 生物制药公司网站模板有没有专业做steam创客的网站
  • 福田做棋牌网站建设找哪家效益快弄一个微信小程序多少钱
  • 成都哪家做网站建设比较好做推广赚钱的网站
  • 常州专门做网站的公司有哪些网页模板下载网站10
  • linx服务器怎么做网站做长页网站
  • 汕头网站建设sagevis服装设计公司有什么职位
  • 网站流量分析报告医院网站制作公司
  • 仿58网站怎么做邯郸网站设计多少钱
  • 广州网站制作开发wordpress中文固定连接
  • 成都网站建设公司盈利吗专门做二手手机的网站有哪些
  • 手机网站设计需要学什么wordpress读法
  • WordPress pajx天津短视频seo