【问题标题】:How to set cookie in vuejs?如何在 vuejs 中设置 cookie?
【发布时间】:2018-11-18 03:46:57
【问题描述】:

在 vuejs 中设置 cookie 的最佳做法是什么? 我使用 SSR,所以我想我不能使用 localStorage。

这里最好的方法是什么?

【问题讨论】:

    标签: javascript cookies vue.js vuejs2


    【解决方案1】:

    最好使用mounted方法

    mounted: function() { 
        document.cookie = "username=John Doe";
    }
    

    【讨论】:

    • 请为您的答案添加更多解释。
    • 挂载 :function(){ document.cookie = "username=John Doe"; } 。如果 Dom 已准备好挂载,将被触发,以便您可以提及您的 cookie 数据
    • 请编辑您的答案,使其更加完整和易于理解。
    • 不是每次刷新应用都会触发吗?太棒了。
    【解决方案2】:

    您可以使用 vue-cookievue-cookies npm 包。 您可以在 created 方法中设置一个 cookie。

    created() {
       this.$cookie.set("keyName", keyValue, "expiring time")
    }
    

    【讨论】:

    • 请编辑您对this.$cookies.set("keyName", keyValue, "expiring time") 的回答。您要么忘记了 s,要么已更新,但如果您只写 $cookie,它就不再起作用了
    • @AndorNémeth 对于 vue-cookie,它是 this.$cookie,对于 vue-cookie,它是 this.$cookies
    • @Semx11 daaamn 我错过了。感谢您的提醒!
    【解决方案3】:

    使用vue-cookies

    使用方法:

    <script src="https://unpkg.com/vue-cookies@1.5.12/vue-cookies.js"></script>
    <script>
      $cookies.set('cookie_name', 'cookie_value');
    </script>
    

    【讨论】:

      【解决方案4】:

      您也可以在不使用扩展的情况下使用纯 JavaScript 来完成。

      假设您想在axios POST 响应中存储一个有效期为 24 小时的令牌。

      axios
        .post("url", dataToSend)
        .then(function (response) {
          if (response.status == 200) {
            let d = new Date();
            d.setTime(d.getTime() + 1 * 24 * 60 * 60 * 1000);
            let expires = "expires=" + d.toUTCString();
            document.cookie =
              "Token=" + response.data.Token + ";" + expires + ";path=/";
          }
        })
        .catch(function (error) {
          console.log(error);
        });
      

      【讨论】:

        【解决方案5】:

        我认为最简单和最干净的方法是:

            import VueCookies from 'vue-cookies'
            VueCookies.set('name' , name, "1h") 
        

        如果你想在 Vuex 中添加突变,这可以添加。

        【讨论】:

          猜你喜欢
          • 2019-10-04
          • 1970-01-01
          • 2017-10-14
          • 2012-08-01
          • 2021-05-19
          • 2018-06-14
          • 2015-09-08
          • 2020-01-05
          • 2021-03-22
          相关资源
          最近更新 更多