Vue页面传参

父子组件

子传父

子组件
通过在方法中使用this.$emit()传出

<template>
  <div>
    <h1>children</h1>
      <button @click="sendTOParent">向父组件传值</button>
  </div>
</template>>
<script>
export default {
  data() {
    return {
      data: "子组件中的信息"
    };
  },
  methods:{
        sendTOParent(){
            this.$emit('listenToChildEvent',this.data)
        }
    }
};
</script>>

父组件
通过v-on接受组件参数

<template>
  <div>
    <children v-on:listenToChildEvent = 'showMsgfromChild' />
  </div>
</template>>
<script>
import Children from "./Children";
export default {
  data() {
    return {
    };
  },
   methods:{
        showMsgfromChild(data){
            console.log(data)
        }
    },
   components: {
    Children
  },
};
</script>

在Uniapp结合Vue3进行页面传参,有以下几种常见方法: ### 页面跳转传参 在A页面传参时,若要传递对象参数,可将对象转换为JSON字符串后添加到跳转的URL中。示例代码如下: ```javascript const toDetail = (value) => { let obj = { id: 1, name: "张三" }; uni.navigateTo({ url: `/pages/demo?obj=${JSON.stringify(obj)}` }); }; ``` 在B页面接收参数时,可使用`onLoad`生命周期函数来获取传递的参数。示例代码如下: ```vue <template> <!-- 页面模板 --> </template> <script setup> import { onLoad } from '@dcloudio/uni-app'; import { ref, onMounted } from 'vue'; onLoad((e) => { console.log(e); }); </script> ``` 另外,传递对象参数也可以采用如下方式: ```javascript let o = { 'id': 134, 'name': 'Mike' }; uni.navigateTo({ url: '/pages/index?data=' + JSON.stringify(o) }); ``` ### 子传父参数 子组件需要先使用`defineEmits`注册某个在父组件的事件,然后通过`emits`触发父组件事件并且带上参数。示例代码如下: ```vue <template> <!-- 子组件模板 --> <button @click="sendDataToParent">传递参数给父组件</button> </template> <script setup> import { defineEmits } from 'vue'; const emits = defineEmits(['parentEvent']); const sendDataToParent = () => { const param = '这是子组件传递的参数'; emits('parentEvent', param); }; </script> ``` 在父组件中监听该事件并处理参数: ```vue <template> <!-- 父组件模板 --> <ChildComponent @parentEvent="handleChildEvent" /> </template> <script setup> import { ref } from 'vue'; import ChildComponent from './ChildComponent.vue'; const handleChildEvent = (param) => { console.log('接收到子组件的参数:', param); }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值