美文网首页
Vue.js如何在一个页面调用另一个同级页面的方法

Vue.js如何在一个页面调用另一个同级页面的方法

作者: 一缕暖阳_7846 | 来源:发表于2020-10-28 11:36 被阅读0次

    实际开发过程中,当前组件调用完方法之后,也许会调取同一级组件中的方法,本人暂时想到两种办法:

    1. vm.$on(event,callback)

    1. 新建一个工具函数util.js,代码如下:

      import Vue from 'vue'
      export default new Vue;复制代码
      
    2. 然后两个页面都引用它

      import util from './util'复制代码
      

      调用方:

      methonds:{
          functionA(){
                util.$emit('test','test')    
              }
        }
      

      被调用方:

      methonds:{
        functionB(){
        }
       },
       mounted(){
          util.$on('test',(test)=>{ 
             console.log(test); 
             this.functionB();   
          })
       }
      

    2. vuex

    1. 新建store.js

      import Vue from 'vue';
      import Vuex from 'vuex';
      Vue.use(Vuex);
      
      const store = new Vuex.Store({
          state: {
             list:[]
          },
      mutations: {
          setList(state,payload){
              state.list = payload
          }
      },
      actions: {
          getList({commit}){
              getList().then(res=>{
                  commit('setList',res.data)
              })
          }
      }
      });
          export default store;
      
    2. 使用
      调用方:

        import {mapAction} from 'vuex'
      
       methonds:{
             ...mapAction([
               'getList'
            ]),
              functionA(){
                   this.getList()
               }
         }
      

      被调用方:

      import {mapAction,mapState} from 'vuex'
          computed:{
               ...mapState([
                'list'
               ])  
            },
       methonds:{
            ...mapAction([
                 'getList'
              ])
        },
        mounted(){
            this.getlist()
         }
      

    相关文章

      网友评论

          本文标题:Vue.js如何在一个页面调用另一个同级页面的方法

          本文链接:https://www.haomeiwen.com/subject/lfmdyktx.html