• vue3 父子组件之间的传值


    第一种:需要用到  defineProps,defineEmits;用法其实跟vue2.x基本上还是一样的

    父传子:parent.vue

    <template>
    <div>
    <child :value="value" @add="childClick" :msg="msg" />
            <br />
        <div>{{msg1}}</div>
        <br />

    <button @click.stop="parentClick()">父组件按钮</button>
    </div>
    </template>
    <script setup lang="ts">
    /**
    * 引入必要的模块
    */
    import { ref } from 'vue'
    import child from './Child .vue'
        /**
    * 定义数据
    */
    const value = ref<number>(0);
    const msg = ref<string>('我是父组件传递过来的值啊~~');
    const msg1 = ref<string>('')

    /**
    * 定义方法
    */
    const parentClick = ()=> {
    value.value++
        }
      
     const childClick = (value)=>{
    msg1.value = value
    }

    </script>

    子组件:child.vue
    <template>
    <div>
    <h1>{{ props.msg }}</h1>
    <h1>{{ props.value }}</h1>
    <button @click="onChildClick">子组件按钮</button>
    </div>
    </template>
    <script setup lang="ts">
    /**
    * 定义数据
    */
    const props = defineProps({ value: { type: Number },msg:{type:String} })
    const emit = defineEmits(['add'])

    /**
    * 定义方法
    */
    const onChildClick = ()=> {
    emit('add', '我是子组件传过来的值')
    }
    </script>
    第二种:父级组件向多层子组件传值 provide 和 inject
    父级组件:
    import { provide} from 'vue';
    provide('parentMsg','我是父组件');
    子组件:
    import {inject} from 'vue';
    const sonMsg = inject(parentMsg)
    孙子组件
    import {inject} from 'vue';
    const grandsonMsg = inject(parentMsg)
     
  • 相关阅读:
    判断某个元素是否显示/隐藏
    文件file
    文件上传原理--FileReader
    angular搭建
    判断滚动条滚到底部
    bugDone
    webstorm界面主题
    自定义滚动条
    用电脑免费给手机发短信(转)
    c++ 面试常见问题
  • 原文地址:https://www.cnblogs.com/xiebeibei/p/15783497.html
Copyright © 2020-2023  润新知