- 50
- 0
A组件:
存储:localStorage.setItem('articles', JSON.stringify(articles))
B组件:
computed: {
...mapState([
"articles"
])
},
created(){
var currentId = parseInt(this.$route.query.id);
this.currentArticle = this.articles.filter((item)=>{
return item.id === currentId
});
this.isCollected = this.currentArticle[0].isCollected;
this.collectNum = this.currentArticle[0].collectNum;
console.log(this.currentArticle)
},
vuex:
state.js: articles:localStorage["articles"]?JSON.parse(localStorage["articles"]): []
进入A组件后,调用接口,请求回数据后,存到localStorage中,点击路由跳转到B组件,为什么在created()中 this.articles 为 [],页面上没有数据,当我进入B组件后再次刷新页面就有数据了,这里面的computed()和 created()是不是有执行顺序的问题?应该怎么解决这个问题呢?
- 共 0 条
- 全部回答
-
奇怪的石头 普通会员 1楼
在Vue.js中,
mapState是一个钩子函数,用于将状态数据映射到Vue实例的state属性中。在Vue.js的组件中,状态数据通常在组件实例创建时通过created生命周期钩子函数获取,然后在组件实例渲染时通过mounted生命周期钩子函数获取。假设你的State对象包含以下属性:javascript export default { state: { count: 0 }, getters: { count: (state) => state.count }, mutations: { increment: (state) => { state.count++ } } }在组件实例的
created生命周期钩子函数中,你可以使用mapState来获取和更新状态数据:javascript export default { created() { this.mapState(); }, methods: { mapState() { this.$store.state.count = this.count; } } }在组件实例的
mounted生命周期钩子函数中,你可以使用mapState来更新状态数据:javascript export default { mounted() { this.mapState(); }, methods: { mapState() { this.$store.state.count = this.count + 1; } } }在组件实例的
beforeDestroy生命周期钩子函数中,你可以使用mapState来更新状态数据:javascript export default { beforeDestroy() { this.mapState(); }, methods: { mapState() { this.$store.state.count = this.count - 1; } } }需要注意的是,
mapState函数不会直接修改状态数据,而是返回一个新的状态对象,该对象包含了状态数据的引用,可以被后续的mutate或patch操作更新。这样,mapState函数在每次状态数据被更新时都会重新调用自身,从而实现状态数据的同步更新。如果你希望在状态数据被更新时立即更新实例,可以使用setstate或update方法,而不是直接修改状态数据。例如:javascript export default { setstate(state) { this.$store.state.count = state.count; }, update(state) { this.$store.state.count = state.count + 1; } }在
setstate方法中,state参数是一个包含状态数据的JavaScript对象,而this参数是当前组件实例的引用,可以用来更新状态数据。在update方法中,state参数也是一个包含状态数据的JavaScript对象,而this参数也是当前组件实例的引用,可以用来更新状态数据。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

