即使在 Vuejs 中刷新页面,如何在 localstorage 中维护数组值?

How to maintain array value in localstorge even if page is refreshed in Vuejs?

HelloWorld.vue

<template>
  <div>
    <div v-for="item in items" :key="item.cakeid">
      <b> id: {{ item.cakeid }}</b>
      <router-link
        :to="{
          name: 'UserWithID',
          params: { id: item.cakeid },
          query: { cakeid: item.cakeid },
        }"
      >
        {{ item.cakeName }}
      </router-link>
    </div>
    <br /><br /><br />
    <User />
    <br /><br /><br />
    <tabs />
  </div>
</template>

<script>
import User from "./User.vue";
import tabs from "./tabs.vue";
import { router } from "./router";
export default {
  name: "HelloWorld",
  components: {
    User,
    tabs,
  },
  data() {
    return {
      items: router,
    };
  },
};
</script>

User.vue

<template>
  <div>
    <div v-for="(item, key) in user" :key="key">
      {{ item.cakeName }} <br />
      {{ user.total }}{{ item.cakePrice }} <br />
      {{ user.total }}{{ item.total }}
    </div>
  </div>
</template>

<script>
import { routerid } from "./routerid";
export default {
  name: "User",
  data() {
    return {
      lists: routerid,
    };
  },
  computed: {
    user: function () {
      return this.lists.filter((item) => {
        if (item.cakeid === this.$route.params.id) {
          return item;
        }
      });
    },
  },
};
</script>

tabs.vue

<template>
  <div>
    <div v-for="(item, key) in user" :key="key">
      {{ item.chefname }} <br />
      {{ user.feedback }}{{ item.rating }} <br />
    </div>
  </div>
</template>

<script>
import { tabsandcontent } from "./tabsandcontent";
export default {
  name: "User",
  data() {
    return {
      lists: tabsandcontent,
    };
  },
  computed: {
    user: function () {
      return this.lists.filter((item) => {
        if (item.cakeid === this.$route.params.id) {
          return item;
        }
      });
    },
  },
};
</script>

如何在 Vuejs 中刷新页面后保持数据存活?

单击路由器link,我根据每个数组 ID 过滤一些值。并显示这些数组值。

在此过程中,在单击路由器-link 后显示数组值后,如果我刷新页面,则不会显示之前显示的所有数组值。

即使在刷新页面后,我也想保持数据原样(就像之前点击状态一样)。我认为这可以通过使用 localstorage get 和 set items 来处理。

但不确定放在哪里。?

问题是当你刷新页面时,这部分 this.$route.params.idUser.vue returns 中的 id 作为一个字符串并且你正在检查 item.cakeid === this.$route.params.id 使用三个相等符号。 因此,这意味着您不仅需要值相等,而且类型相同。

只需将其更改为 == 或使用 parseInt 函数从字符串中解析整数。