高级vue setup 中provide和inject用法

父组件

<script>
import { computed, provide, watch } from 'vue'
import {ref,reactive,toRefs} from 'vue'
import father from './components/father.vue'
export default{
    setup() {
        let data = reactive({
            mes: 'adssss',
            userObj: {
                userName: "www.96net.com.cn"
            },
        });


        provide('name', data.mes)

        const add = () => {
            data.mes++;
            console.log(data.mes);
        };
        watch(() => data.mes, (newvalue, oldvlaue) => {
            console.log("n" + newvalue);
            console.log("o" + oldvlaue);
        });
 
        return {
            ...toRefs(data),
            add,
        };
    },
    components: { father}
}
</script>

<template>
  <div id="as">
    {{mes}}
    <br>
  </div>
  <button @click="add">+</button>
  <hr>
  <father></father>
</template>

<style scoped>

</style>
 
子组件
<template>
    www.96net.com.cn
    {{ name }}
  </template>
 
  <script>
  import { inject } from 'vue'
  export default {
    setup() {
      const name = inject('name')
      return {
        name
      }
    }
  }
  </script>
posted @   学无边涯  阅读(150)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2020-10-05 thinkphp5 数据库原生查询
2020-10-05 thinkphp5 子查询几种方式
2020-10-05 thinkphp5 数据库视图查询
2020-10-05 thinkphp5 数据库高级查询
2020-10-05 thinkphp5 数据库时间查询
2018-10-05 python Calendar 模块导入及用法
2018-10-05 Python 的 time 模块导入及其方法
点击右上角即可分享
微信分享提示