JavaScript

超轻量级php框架startmvc

vue实现点击关注后及时更新列表功能

更新时间:2020-07-14 09:24:02 作者:startmvc
如图,我要实现点击关注之后列表及时更新成最新的列表。思路很简单,主要是两点:1、

如图,我要实现点击关注之后列表及时更新成最新的列表。

思路很简单,主要是两点:

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实现点击关注后及时更新列表功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

vue实现点击关注 vue 更新列表