Vue 2 SSRキャッシュAppデータ


本論文では、Vue 2 SSRキャッシュアプリのデータを紹介します。
1.据付キャッシュ依存:ll-cache

npm install lru-cache --dev
2.appプロファイル
config-server.js

var LRU = require('lru-cache')

let api
if (process.__API__) {
  api = process.__API__
} else {
  api = process.__API__ = {
    api: 'http://localhost:8080/api/',
    cached: LRU({
      max: 1000,
      maxAge: 1000 * 60 * 15
    }),
    cachedItem: {}
  }
}

module.exports = api

l-cacheを設定します
3.パッケージ下のapp

import axios from 'axios'
import qs from 'qs'
import md5 from 'md5'
import config from './config-server.js'

export default {
  post(url, data) {
    const key = md5(url + JSON.stringify(data))
    if (config.cached && config.cached.has(key)) {
      return Promise.resolve(config.cached.get(key))
    }
    return axios({
      method: 'post',
      url: config.api + url,
      data: qs.stringify(data),
      //     
    }).then(res => {
      if (config.cached && data.cache) config.cached.set(key, res)
      return res
    })
  }
}

ajaxライブラリはaxiosを使っています。axiosはnodejsとブラウザで全部使えます。
そしてnodeの端とブラウザの端を別々にカプセル化します。

import config from './config-server.js'

const key = md5(url + JSON.stringify(data))
urlとパラメータによって、唯一のkeyが生成されます。

if (config.cached && config.cached.has(key)) {
  return Promise.resolve(config.cached.get(key))
}

if (config.cached && data.cache) config.cached.set(key, res)
キャッシュがオープンしているかどうかを判断し、インターフェースがキャッシュを指定すると、apiが戻ってきたデータをキャッシュに書き込みます。
注意:
このアプリはすべての要求を処理しますが、多くの要求はキャッシュが必要ではないので、キャッシュが必要です。

api.post('/api/test', {a: 1, b:2, cache: true})
キャッシュ不要の直接は正常の伝値を押せばいいです。
もちろんここにはキャッシュする方法がたくさんあります。これを使う必要はありません。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。