# Cache
You can use cache property to leverage cache feature on endpoints
Endpoints using cache should have unique key property
Current cache implementations are:
- Memory Cache
- Storage Cache
<template>
  <div class="example-box">
    {{ user.baseURL }}{{ user.url }}
    <br>
    <input
      v-model="userId"
      type="number"
    >
    <br>
    <span v-if="user.data">{{ user.data.name }}</span>
    <span v-if="user.loading">Loading...</span>
    <span v-if="user.error">Error: {{ user.status }} {{ user.error }}</span>
  </div>
</template>
<script>
import { MemoryCache } from '../../../dist/vue-chimera.es'
export default {
  name: 'ReactiveEndpointExample',
  data () {
    return {
      userId: 1,
      keepData: true
    }
  },
  chimera: {
    $options: {
      // 15 seconds expiration
      cache: new MemoryCache(15000)
    },
    user () {
      return {
        url: '/users/' + this.userId,
        // Key property is required to use cache features
        // Provide a unique key based on endpoint parameters
        key: 'user-' + this.userId
      }
    }
  }
}
</script>
  https://jsonplaceholder.typicode.com/users/1
  
  
   
 # Cache busting
You can use .reload(true) or .fetch(true) to ignore cache
export default {
   methods: {
       forceReload() {
          this.users.reload(true)
       }
   }
}
Also to delete cache you can call .deleteCache() on endpoint. But be ware on reactive endpoints
this only removes current endpoint cache, you can use .cache.clear() to completely remove cache keys
from a cache store.
# Custom cache implementation
You can easily extend MemoryCache or StorageCache classes to implement your own rules.
(LRU cache, ...)