需求分析:首頁面有两个组件,Artist组件和Tag组件,分别对应文章组件和标签组件,点击Tag组件的某项标签,要动态更新Artist组件里的内容,并且路由要传递查询信息
首先,要根据Tag组件选中的tid去动态更新articles数据,如何去实现呢?
这时候我想到的方法:是把articles数据放在vuex上实现组件共享,点击标签后,Tag组件直接异步请求articles数据,并更新Vuex上的articles,然后再更新路由,同时设置Article组件的articles为Computed属性,这样就可以动态更新页面数据了
store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store=new Vuex.Store({
/*为什么共享文章:因为方便tag页面操作文章,点击不同tag,更新不同文章*/
state:{
articles:{
artContent:[],
total:0,
},
},
mutations:{
initArticles(state,obj){
state.articles.artContent=obj.data;
state.articles.total=obj.total;