zoukankan      html  css  js  c++  java
  • vue高阶用法之provide与inject

    1、这个两个必须同时使用,当父组件定义的方法,子组件也想使用怎么办了,这时候就可以派上用场了

    provide:Object | () => Object
    inject:Array<string> | { [key: string]: string | Symbol | Object }

    父组件中

    <template>
      <div
        id="app"
      >
        <router-view
          v-if="isRouterAlive"
        />
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      components: {
      
      },
      data () {
        return {
          isShow: false,
          isRouterAlive: true
      },
    
    // 父组件中返回要传给下级的数据
      provide () {
        return {
          reload: this.reload
        }
      },
      methods: {
        reload () {
          this.isRouterAlive = false
          this.$nextTick(() => {
            this.isRouterAlive = true
          })
        }
      }
    }
    </script>
    

      子组件中

    <template>
      <popup-assign
        :id="id"
        @success="successHandle"
      >
        <div class="confirm-d-tit"><span class="gray-small-btn">{{ name }}</span></div>
        <strong>将被分配给</strong>
        <a
          slot="reference"
          class="unite-btn"
        >
          指派
        </a>
      </popup-assign>
    </template>
    <script>
    import PopupAssign from '../PopupAssign'
    export default {
    //引用vue reload方法
      inject: ['reload'],
      components: {
        PopupAssign
      },
    methods: {
        // ...mapActions(['freshList']),
        async successHandle () {
          this.reload()
        }
      }
    }
    </script>
    

     这样就实现了子组件调取reload方法就实现了刷新vue组件的功能,个人认为它实现了组件跨越组件传递数据方法。 

  • 相关阅读:
    java 调用webService的各种方法
    log4j.properties配置详细
    js的with语句使用方法
    Hibernate 拦截器 Hibernate 监听器
    Axis1.4 WebService
    Servlet
    ROOT android 原理。 基于(zergRush)
    创建固定大小的文件 Linux shell 脚本编写实例
    makefile 自动推导命令
    makefile的变量定义和赋值
  • 原文地址:https://www.cnblogs.com/hongyungo/p/12363118.html
Copyright © 2011-2022 走看看