
如图,我要实现点击关注之后列表及时更新成最新的列表。
思路很简单,主要是两点:
1、在点击关注之后去执行一个请求新的关注列表的action;
2、在vue组件中watch监听已关注列表和推荐关注列表
主要代码如下:
组件:
关注的methods:
followMethod(item){
 if(this.token){
 this.$store.dispatch('follow',{followUserId:item.pubId,page:this.page,size:this.size});
 this.$set(item,"followStatus",true);
// this.$store.dispatch('refreshFollowList',{page:0,size:this.size});
 }else{
 Toast({
 message: "请先登录",
 duration: 800
 });
 setTimeout(function () {
 this.$router.push('/login');
 },800)
 }
 },watch:
followList(curVal, oldVal){
 console.log(curVal)
 },
 userFollowList(curVal, oldVal){
 console.log(curVal)
 },followList.js vuex的列表module文件:
action:
follow({dispatch,commit},payload){
 axios({
 method:"post",
 url:"web/follow/add",
 headers: {'w-auth-token': Cookies.get('token')},
 params:{
 page:payload.page,
 size:payload.size
 },
 data:{
 followUserId:payload.followUserId
 }
 }).then((res) => {
 Toast("关注成功");
 return dispatch('refreshFollowList')
 }).catch((error) => {
 Toast("关注出错,请重试!");
 });
 }
refreshFollowList({state,commit}){
 if(token){
 axios.all([
 axios({
 method:"get",
 url:"web/pub/recommend",
 headers: {'w-auth-token': token},
 }),
 axios({
 method:"get",
 url:"web/pub/list_pub_and_top_news",
 headers: {'w-auth-token': Cookies.get('token')},
 })
 ]).then(axios.spread(function(res1,res2){
 commit("REFRESHFOLLOWLIST",res1);
 commit("REFRESHUSERFOLLOWLIST",res2);
 }));
 }else{
 axios({
 method:"get",
 url:"web/pub/recommend",
 }).then(function(res){
 commit("REFRESHFOLLOWLIST",res);
 });
 }
 },mutation:
const mutations = {
 REFRESHFOLLOWLIST(state,res){
 state.followList=res.data.content;
 state.totalPages=res.data.totalPages;
 },
 REFRESHUSERFOLLOWLIST(state,res){
 state.userFollowList=res.data.content;
 state.userTotalPages=res.data.userTotalPages;
 },
};总结
以上所述是小编给大家介绍的vue实现点击关注后及时更新列表功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!