首页 > 其他分享 >vue3中在setup方法中使用 provide,inject,组件上下层,直接传值和方法

vue3中在setup方法中使用 provide,inject,组件上下层,直接传值和方法

时间:2023-03-27 10:59:16浏览次数:40  
标签:vue const provide setup inject vue3 data method


一个简简单单的案例

app.vue

<template>
  <div>
    app
    <Second/>
  </div>
</template>
<script>
import { provide } from 'vue';
import Second from './components/Second.vue'
export default {
    components:{
      Second
    },
    setup(){
        //const data = 'hello world--from app';
        const method = () => console.log('hello world!!!---from app');
        
        //provide('data',data);
        provide('method',method)
    }
}
</script>

/components/Second.vue

<template>
  <div>
    second page:{{ data }}
    <Third/>
  </div>
</template>
<script>
import { inject } from 'vue';
import Third from './Third.vue'
export default {
  name:'second',
  components:{
    Third
  },
  setup(){
    const data = inject('data','second data value');
    // app没有provide data,不是provide data的值,是直接没有provide data;
    // 这时候会给data赋值 "second data value"
    const method = inject('method');
    method();
    
    return {
      data,
      method
    }
  }
}
</script>

/components/Third.vue

<template>
    <div>
      <p>third page: {{ data }}</p>
    </div>
</template>
 
<script>
  import { inject } from 'vue';
  export default {
    name: 'third',
    components: {},
    setup(){
      const data = inject('data','third data value');
      const method = inject('method');
      method();
      return {
        data,
        method
      }
    }
  }
</script>
 
<style>
</style>

标签:vue,const,provide,setup,inject,vue3,data,method
From: https://www.cnblogs.com/pansidong/p/17260767.html

相关文章

  • vue3获取url参数的值
    <scriptsetupname="Welcome">import{onMounted}from'vue';import{useRouter}from'vue-router';const$router=useRouter();onMounted(()=>{consol......
  • Vue3 脚手架
    1.使用vue-cli创建脚手架PowerShellvuecreatevue3_test#创建vue3工程,vue-cli版本必须在4.5.13以上PowerShellnpmrunserve#运行工程2.使用......
  • 对于Vue3和Ts的心得和思考
    作者:京东物流吴云阔1前言Vue3已经正式发布了一段时间了,各种生态已经成熟。最近使用taro+vue3重构冷链的小程序,经过了一段时间的开发和使用,有了一些自己的思考。总的来说,Vu......
  • 对于Vue3和Ts的心得和思考
    作者:京东物流吴云阔1前言Vue3已经正式发布了一段时间了,各种生态已经成熟。最近使用taro+vue3重构冷链的小程序,经过了一段时间的开发和使用,有了一些自己的思考。总的来......
  • vue3 + vite 调试时断点位置错误
    vite-plugin-vue-setup-extend(版本0.4.0)插件的问题,删掉就好了。该插件用于解决scriptsetup语法糖下,不方便直接指定name名称的问题。在vite/plugins/index.js文件中......
  • Vue3的fetch和Axios
    Vue3的fetch和Axios都是用于发送HTTP请求的JavaScript库,但是它们之间有以下几个区别:语法不同:fetch是浏览器原生的API,使用起来比较简单,而Axios是一个第三方库,需要通过npm安......
  • Vue2和Vue3之响应式原理详解
    目录1响应式原理1.1简介1.2vue2和vue3区别1.2.1Object.defineProperty()1.2.2Proxy1.3Vue2响应式原理1.3.1给data属性创建Observer实例1.3.2通过Observer实例把dat......
  • 在Vue3+TypeScript 前端项目中使用事件总线Mitt
    事件总线Mitt使用非常简单,本篇随笔介绍在Vue3+TypeScript前端项目中使用的一些场景和思路。我们在Vue的项目中,经常会通过emits 触发事件来通知组件或者页面进行相应的处......
  • 在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口
    在基于vue-next-admin 的Vue3+TypeScript前端项目中,可以整合自己的.NET后端,前端操作一些功能的时候,为了使用方便全局挂载的对象接口,以便能够快速处理一些特殊的操作,如......
  • 初识vue3-setup语法糖,ref和reactive语法,computde计算属性,watch开启监听
    vue3和vue2的区别1,vue3首次渲染更快(Vue3在编译和渲染性能上有了很大的提升,主要是因为使用了Proxy代理和优化算法,使得组件可以更快的渲染)2,diff算法更快3,内存占用体积......