如何在vue.js中设置cookie?

Ic3*_*m4n 11 javascript cookies vue.js vuejs2

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

最好的方法是什么?

小智 11

您可以使用vue-cookievue-cookies npm软件包。您可以在创建的方法中设置cookie。

created() {
   this.$cookie.set("keyName", keyValue, "expiring time")
}
Run Code Online (Sandbox Code Playgroud)

  • 请编辑您对 `this.$cookies.set("keyName", keyValue, "expiring time")` 的答案。你要么忘记了 s,要么它已经更新了,但如果你只写 `$cookie`,它就不再起作用了 (5认同)
  • @AndorNémeth 对于 vue-cookie,它是 `this.$cookie`,对于 vue-cookies 它是 `this.$cookies` (4认同)
  • [vue-cookie](https://www.npmjs.com/package/vue-cookie) 仅支持 vue-2 因此 [vue-cookies](https://www.npmjs.com/package/vue-cookies)对于 vue-3 (2认同)

kha*_*han 7

您也可以在计划javascript中执行此操作,而无需使用扩展名。

假设您要在xios 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);
});
Run Code Online (Sandbox Code Playgroud)


mpa*_*cia 5

使用vue-cookies

使用:

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


Vis*_*hai 5

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

    import VueCookies from 'vue-cookies'
    VueCookies.set('name' , name, "1h") 
Run Code Online (Sandbox Code Playgroud)

如果您希望在 Vuex 中使用它们,可以将其添加到突变中。