【发布时间】:2018-11-18 03:46:57
【问题描述】:
在 vuejs 中设置 cookie 的最佳做法是什么? 我使用 SSR,所以我想我不能使用 localStorage。
这里最好的方法是什么?
【问题讨论】:
标签: javascript cookies vue.js vuejs2
在 vuejs 中设置 cookie 的最佳做法是什么? 我使用 SSR,所以我想我不能使用 localStorage。
这里最好的方法是什么?
【问题讨论】:
标签: javascript cookies vue.js vuejs2
最好使用mounted方法
mounted: function() {
document.cookie = "username=John Doe";
}
【讨论】:
您可以使用 vue-cookie 或 vue-cookies npm 包。 您可以在 created 方法中设置一个 cookie。
created() {
this.$cookie.set("keyName", keyValue, "expiring time")
}
【讨论】:
this.$cookies.set("keyName", keyValue, "expiring time") 的回答。您要么忘记了 s,要么已更新,但如果您只写 $cookie,它就不再起作用了
this.$cookie,对于 vue-cookie,它是 this.$cookies
使用方法:
<script src="https://unpkg.com/vue-cookies@1.5.12/vue-cookies.js"></script>
<script>
$cookies.set('cookie_name', 'cookie_value');
</script>
【讨论】:
您也可以在不使用扩展的情况下使用纯 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);
});
【讨论】:
我认为最简单和最干净的方法是:
import VueCookies from 'vue-cookies'
VueCookies.set('name' , name, "1h")
如果你想在 Vuex 中添加突变,这可以添加。
【讨论】: