uni-app组件间传值

1、父子组件间传值

1.1 使用props进行数据传递(父传子)

1.2 使用$emit发送事件(子传父)

以下是使用props和$emit的示例代码:

父组件:

<template>
  <ChildComponent :parentData="parentData" @childEvent="handleChildEvent" />
</template>
 
<script>
import ChildComponent from '@/components/ChildComponent.vue';
 
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      parentData: '父组件数据'
    };
  },
  methods: {
    handleChildEvent(data) {
      console.log('子组件触发的事件', data);
    }
  }
};
</script>

子组件:

<template>
  <view>
    <text>{{ parentData }}</text>
    <button @click="sendDataToParent">向父组件发送数据</button>
  </view>
</template>
 
<script>
export default {
  props: {
    parentData: String
  },
  methods: {
    sendDataToParent() {
      this.$emit('childEvent', '子组件数据');
    }
  }
};
</script>

在这个例子中,父组件通过props向子组件传递数据,子组件通过点击按钮触发一个事件,并通过$emit向父组件发送数据。父组件监听这个事件,并在方法handleChildEvent中处理接收到的数据。

2、通过 URL 参数传递(适用于 WebView)

如果你的 App 页面通过 WebView 渲染,可以像在 Web 端一样通过 URL 传递参数。例如:

uni.navigateTo({
  url: '/pages/targetPage/targetPage?param=value'
});

目标页面可以通过 onLoad 获取参数:

onLoad(options) {
  console.log(options.param); // 获取 URL 中的 param 参数
}

3、通过 Storage 本地存储传递参数

使用 uni.setStorageSync 和 uni.getStorageSync 存储参数,能够在不同页面间传递数据。

// 设置存储
uni.setStorageSync('userInfo', userInfo);

在目标页面获取数据:

const userInfo = uni.getStorageSync('userInfo');
console.log(userInfo);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值