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

企业网站前端建设产品营销类网站

企业网站前端建设,产品营销类网站,备案新增网站材料,台州建设质量监督网站一、数据持久化介绍 数据持久化是将内存数据(内存是临时的存储空间)#xff0c;通过文件或数据库的形式保存在设备中。 HarmonyOS提供两种数据持久化方案#xff1a; 1.1、用户首选项#xff08;Preferences#xff09;#xff1a; 通常用于保存应用的配置信息。数据通…一、数据持久化介绍 数据持久化是将内存数据(内存是临时的存储空间)通过文件或数据库的形式保存在设备中。 HarmonyOS提供两种数据持久化方案 1.1、用户首选项Preferences 通常用于保存应用的配置信息。数据通过文本的形式保存在设备中应用使用过程中会将文本中的数据全量加载到内存中所以访问速度快、效率高但不适合需要存储大量数据的场景。 1.2、数据库 键值型数据库KV-Store一种非关系型数据库其数据以“键值”对的形式进行组织、索引和存储其中“键”作为唯一标识符。适合很少数据关系和业务关系的业务数据存储同时因其在分布式场景中降低了解决数据库版本兼容问题的复杂度和数据同步过程中冲突解决的复杂度而被广泛使用。相比于关系型数据库更容易做到跨设备跨版本兼容。 关系型数据库RelationalStore一种关系型数据库以行和列的形式存储数据广泛用于应用中的关系型数据的处理包括一系列的增、删、改、查等接口开发者也可以运行自己定义的SQL语句来满足复杂业务场景的需要。 二、通过用户首选项实现数据持久化 使用场景用户首选项为应用提供Key-Value键值型的数据处理能力支持应用持久化轻量级数据并对其修改和查询。 说明 ①Key键为string类型要求非空且长度不超过80个字节。 ②Value可以是string、number、boolean及以上类型数组大小不超过8192字节 ③数据量建议不超过一万条 2.1、基本案例 2.1.1、案例代码 Entry Component struct Index {State message: string 页面列表State showPanel: boolean falseProvide fontSize: number 16build() {Column(){// 顶部标题this.Title()// 导航列表this.RouterList()// 字体修改面板if(this.showPanel){IndexFontSizePanel().transition({translate: { y: 115 }})}}.width(100%).height(100%)}Builder Title(){Row() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).height(80)Image($r(app.media.ic_public_settings)).width(30).onClick(() {animateTo({ duration: 500, curve: Curve.EaseOut }, () this.showPanel !this.showPanel)})}.justifyContent(FlexAlign.SpaceAround).width(100%)}Builder RouterList() {List({ space: 15 }) {ForEach([导航,屏幕,图片,图书,书架],(item,index) {ListItem() {Row(){Text((index1) .).fontSize(this.fontSize).fontColor(Color.White)Blank()Text(item).fontSize(this.fontSize).fontColor(Color.White)}.width(90%).padding(12).backgroundColor(#38f).borderRadius(20).shadow({radius: 6, color: #4F000000, offsetX: 2, offsetY: 4})}})}.layoutWeight(1).alignListItem(ListItemAlign.Center).width(100%)} }Component struct IndexFontSizePanel {Consume fontSize: numberfontSizLabel: object {14: 小,16: 标准,18: 大,20: 特大,}build() {Column() {Text(this.fontSizLabel[this.fontSize]).fontSize(20)Row({ space: 5 }) {Text(A).fontSize(14).fontWeight(FontWeight.Bold)Slider({min: 14,max: 20,step: 2,value: this.fontSize}).showSteps(true).trackThickness(6).layoutWeight(1).onChange(val {// 修改字体大小this.fontSize val})Text(A).fontSize(20).fontWeight(FontWeight.Bold)}.width(100%)}.width(100%).padding(15).backgroundColor(#fff1f0f0).borderRadius(20)} } 2.1.2、案例效果 案例说明 这是一个页面列表展示案例点击右上角的设置按钮底部会弹出字体修改面板字体有4个不同的大小(小/标准/大/特大)当点击滑动条可以修改字体大小 目前更改了滑动条的字体大小数据是保存在内存的关闭页面后再进来数据显示默认大小现在是想通过用户首选项实现数据持久化持久化保存设置的字体大小 2.2、具体实现 2.2.1、定义用户首选项操作文件 import preferences from ohos.data.preferences;class PreferencesUtil{prefMap: Mapstring, preferences.Preferences new Map()async loadPreference(context, name: string){try { // 加载preferenceslet pref await preferences.getPreferences(context, name)this.prefMap.set(name, pref)console.log(testTag, 加载Preferences[${name}]成功)} catch (e) {console.log(testTag, 加载Preferences[${name}]失败, JSON.stringify(e))}}async putPreferenceValue(name: string, key: string, value: preferences.ValueType){if (!this.prefMap.has(name)) {console.log(testTag, Preferences[${name}]尚未初始化)return}try {let pref this.prefMap.get(name)// 写入数据await pref.put(key, value)// 刷盘await pref.flush()console.log(testTag, 保存Preferences[${name}.${key} ${value}]成功)} catch (e) {console.log(testTag, 保存Preferences[${name}.${key} ${value}]失败, JSON.stringify(e))}}async getPreferenceValue(name: string, key: string, defaultValue: preferences.ValueType){if (!this.prefMap.has(name)) {console.log(testTag, Preferences[${name}]尚未初始化)return}try {let pref this.prefMap.get(name)// 读数据let value await pref.get(key, defaultValue)console.log(testTag, 读取Preferences[${name}.${key} ${value}]成功)return value} catch (e) {console.log(testTag, 读取Preferences[${name}.${key} ]失败, JSON.stringify(e))}} }const preferencesUtil new PreferencesUtil()export default preferencesUtil as PreferencesUtil 2.2.2、将数据加载到Preferences实例用于数据操作。 放入应用启动时来操作找到EntryAbility文件在onCreate应用创建时加载Preferences实例 2.2.3、Index页面使用 第一步一进入首页就进行读取 使用页面生命周期aboutToAppear来执行 第二步修改字体大小时写入Preferences 最后
http://www.w-s-a.com/news/707326/

相关文章:

  • 网站建设合同的验收表响应式网站建设哪家好
  • 手机网站建设视频长沙百家号seo
  • 网站未备案怎么访问网站开发前端需要学什么
  • 正黄集团博弘建设官方网站wordpress设置固定链接和伪静态
  • wordpress 建网站视频如何实现网站生成网页
  • 杭州品牌网站建设推广个人的网站建设目标
  • 济南有哪些网站是做家具团购的贸易公司自建免费网站
  • wap网站psd成立公司在什么网站
  • 网站建设婚恋交友聊城网站建设费用
  • 沈阳网站建设联系方式尉氏县金星网架公司
  • 医院网站建设实施方案基础微网站开发信息
  • 网站建设开发服务费记账百度指数搜索
  • 网站建设备案流程windows优化大师有必要安装吗
  • 怎么网站定制自己做网站卖视频
  • 网站开发二线城市网站制作过程中碰到的问题
  • 最好网站建设公司制作平台小程序开发教程资料
  • 陕西省高速建设集团公司网站国内做会展比较好的公司
  • 建设学校网站的原因网页设计实训报告1500
  • 网站建设客户来源江门网站设计华企立方
  • 自己如何做棋牌网站宁波网络推广优化方案
  • 深圳招聘网站推荐seo网站推广方案
  • 彩票网站开发 合法学术会议网站建设
  • 商务网站建设论文答辩pptseo技术博客
  • 怎样才能有自己的网站桂林搭建公司
  • 哪个网站做视频赚钱万科
  • 莆系医疗网站建设wp如何做网站地图
  • 网站建设应急处置方案团购网站 备案问题
  • 网站建设 岗位职责浙江中天建设集团有限公司网站
  • 西海岸建设局网站用wordpress建站学什么
  • 网站静态和动态学校网站建设流程步骤