zoukankan      html  css  js  c++  java
  • vue(37)vue中provide和inject的使用及在CompositionAPI中使用

    1.provide用于在根组件中分享自己组件的变量,inject用于在所有根组件的子组件中注册使用根组件中分享出来的变量。

    2.正常vue中使用provide和inject:

    根组件:

    <script>
    export default {
      name:'root',
      data(){
        return {
          name:'tom'
        }
      },
      provide(){//这里就是父组件分享自己的name属性
        return {
          name:this.name
        }
      }
    };
    </script>
     
    任意子组件中注册使用:
    <script>
    export default {
      name:'root',
      inject:['name']//子组件中注册使用上面父组件分享的name变量
    };
    </script>
    注意:当父组件改变name变量时候子组件中的name变量不会改变即不是响应式的。
     
    3.CompositionAPI中使用provide和inject,它是响应式的:
    根组件:
    <script>
    import { ref, reactive, readonly, toRefs, computed, watch ,provide,inject} from "vue";
    export default {
     setup(){
       let name= ref('tom');
       let user = reactive({
         name:''tom,
         age:10
       });
       provide("name",name);//分享自己的name属性
       provide("user",user );//分享自己的user对象
       return{
         name,
     ...toRefs(user)
       }
     }
    };
    </script>
    子组件:
    <script>
    import { ref, reactive, readonly, toRefs, computed, watch ,provide,inject} from "vue";
    export default {
     setup(){
       let name = inject('name');//注入name属性
       let user = inject('user');//注入user对象
       return{
         name,
         user
       }
     }
    };
    </script>
     
  • 相关阅读:
    Git命令branch-分支
    Git基础命令(二)
    Git基础命令(一)
    【转载】Android状态栏微技巧,带你真正理解沉浸式模式
    Android性能分析工具
    【转载】Android卡顿检测方案
    WebView loadData中文乱码
    【Cocos2dx】新建场景、场景的切换、设置启动场景与菜单的新建
    Cocos2d-JS切换场景与切换特效
    COCOS2DX场景切换特效
  • 原文地址:https://www.cnblogs.com/maycpou/p/15037989.html
Copyright © 2011-2022 走看看