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

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

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

     

  • 相关阅读:
    常见浏览器的兼容问题
    SCSS 的理解
    常见浏览器兼容性问题与解决方案(上)
    常见浏览器兼容性问题与解决方案(下)
    ie6定位absolute bug触发layout解决
    AngularJS 最常用的八种功能
    IE6的3像素bug
    CSS属性级Hack
    什么是SASS
    什么是less?
  • 原文地址:https://www.cnblogs.com/wsm777/p/13864136.html
Copyright © 2011-2022 走看看