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') || [] // 存储历史记录
      }
    }

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

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

     

  • 相关阅读:
    [CISCN2019 总决赛 Day2 Web1]Easyweb
    [极客大挑战 2019]Upload
    [SUCTF 2019]EasyWeb
    2020/2/1 PHP代码审计之任意文件读取及删除漏洞
    2020/1/31 PHP代码审计之文件包含漏洞
    [Luogu P1120]小木棍·加强版
    学习笔记·堆优化$mathscr{dijkstra}$
    [LuoguP1462]通往奥格瑞玛的道路($SPFA+$二分)
    [USACO08JAN]电话线$Telephone Lines$(图论$+SPFA+$ 二分答案)
    [USACO06NOV]玉米田$Corn Fields$ (状压$DP$)
  • 原文地址:https://www.cnblogs.com/wsm777/p/13864136.html
Copyright © 2011-2022 走看看