uniapp中组件传值

1、父组件传子组件

父组件内部写法:

复制代码
<template>
    <view>
        <h2>首页</h2>
        <!-- 绑定自定义属性传递数据 -->
        <Two :value="valPar"></Two>
    </view>
</template>

<script>
    //引入子组件
    import Two from "../../components/two/two.vue"
    export default {
        data() {
            return {
                valPar:"父组件传递过来的值"
            }
        },
        components:{
            Two//注册子组件
        },
        methods: {
    
        }
    }
</script>
复制代码

子组件内部写法:

复制代码
<template>
    <h2>two组件收到:{{value}}</h2>
</template>

<script>
    export default {
        props:{
            value:{
                type:String,
                default:"默认值"
            }
        },
        data() {
            return {
                
            }
        },
        created(){
            
        }
    }
</script>
复制代码

2、子组件传父组件 -- 写法1

父组件内部写法:

复制代码
<template>
    <view>
        <!-- 接收到子组件传递的数据 -->
        <h2>接收到的值:{{valueChild}}</h2>
        <!-- 在子组件标签上绑定子组件内部对应事件,并触发对应回调 -->
        <One @Transmit="handle"></One>
    </view>
</template>

<script>
    //引入子组件
    import One from "../../component/one.vue"
    export default {
        data() {
            return {
                valueChild:"",//定义属性接收数据
            }
        },
        components:{
            One//注册子组件
        },
        onLoad(){
            
        },
        methods:{
            // 子组件内部触发事件对应回调handle
            handle(val){
                this.valueChild=val;
            }
        }
    }
复制代码

子组件内部写法:

复制代码
<template>
    <view>
        <h2>one组件</h2>
        <!-- 点击按钮进行事件触发 -->
        <button @click="handleTransmit">点击给父组件传值</button>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                //要传递的数据
                valueParent: "子组件传递过来的数据"
            }
        },
        methods: {
            handleTransmit() {
                // 进行事件触发,传递数据
                this.$emit("Transmit", this.valueParent)
            }
        }
    }
</script>
</script>
复制代码

 

子组件传父组件 -- 写法2

父组件内部写法:

复制代码
<template>
    <view>
        <!-- 接收到子组件传递的数据 -->
        <h2>接收到的值:{{valueChild}}</h2>
        <Two></Two>
    </view>
</template>

<script>
    //引入子组件
    import Two from "../../components/two/two.vue"
    export default {
        data() {
            return {
                valueChild:"",//定义属性接收数据
            }
        },
        components:{
            Two//注册子组件
        },
        onLoad(){
            // 进行事件绑定,val为子组件传递的数据
            uni.$on("Transmit",(val)=>{
                this.valueChild=val;
            })
        }
    }
</script>
复制代码

子组件内部写法:

复制代码
<template>
    <view>
        <h2>two组件</h2>
        <!-- 点击按钮进行事件触发 -->
        <button @click="handleTransmit">点击给父组件传值</button>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                //要传递的数据
                valueParent: "子组件传递过来的数据"
            }
        },
        methods: {
            handleTransmit() {
                // 进行事件触发,传递数据
                uni.$emit("Transmit", this.valueParent)
            }
        }
    }
</script>
复制代码
posted @   Alex-Song  阅读(8829)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示