zoukankan      html  css  js  c++  java
  • 数据持久化分析

    一:从业务分析的角度来看,数据持久化是必不可少的,比如数据展示功能,一个app 用户登录和未登录都有不同的数据展示格式,那么我们从如下分析:

    不登录也能使用

      数据存储在本地  

      不支持同步功能

    登录也能使用

      数据存储在线上后台服务器

      更换不同的设备可以同步数据 

     

    进行这种数据传递  需要用到VueX 和本地存储

       登录成功进行这样的处理

    import { mapState } from 'vuex'
    computed: {
      ...mapState(['user']),
    }
    // 添加频道
    onAddChannel(channel) {
      this.myChannels.push(channel)
    
      // 数据持久化处理
      if (this.user) {
        // 已登录,把数据请求接口放到服务器
    这里面写 try{

       }catch(err){

        } 进行登录后的逻辑,封装的请求方法
    } else { // 未登录,把数据存储到本地 } }

       登录失败进行这样的处理

    import { setItem } from '@/utils/storage.js'
    // 添加频道
    onAddChannel(channel) {
      this.myChannels.push(channel)
    
      // 数据持久化处理
      if (this.user) {
        // 已登录,把数据请求接口放到服务器
        console.log('1')
      } else {
        // 未登录,把数据存储到本地
        setItem('TOUTIAO_CHANNELS', this.myChannels)
      }
    }

    二:利用 watch 监视统一存储数据

    watch: {
      searchHistories (value) {
        // 同步搜索数据到本地
        setItem('TOUTIAO_SEARCH_HISTORY', value)
      }
    }

          初始化的时候从本地存储获取数据

    data() {
      return {
        ....
        searchHistories: getItem('TOUTIAO_SEARCH_HISTORY') || [] // 存储历史记录
      }
    }

       第二个处理方式是防止刷新数据获取为空或者没有保存的问题,也是数据持久化的一种处理方法

    以上就是数据持久化的两种处理方式,有更好更多的的优化和疑问请联系

     

  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/wsm777/p/13864136.html
Copyright © 2011-2022 走看看