uniapp ts 组件传值 $: ComponentInternalInstance; $data: {};
时间: 2024-12-22 15:17:00 浏览: 4
UniApp 是一种基于 TypeScript 的跨平台应用开发框架,它允许开发者构建一套代码可以在微信小程序、H5、Web、以及更多平台运行的应用。在 UniApp 中,`$: ComponentInternalInstance` 是组件实例对象的一个别名,它包含了组件的所有属性和方法。
当你在组件的 `data` 对象中声明变量时,如 `$data: {};`,这是初始化的数据状态,你可以在这里定义组件开始时的默认数据。`$data` 可以包含各种键值对,例如组件的状态信息、配置项等。当需要从外部传递数据给组件时,通常会通过 props 属性来完成,这可以理解为父组件向子组件的传值。
举个例子:
```typescript
<template>
<view>{{message}}</view>
</template>
<script setup>
import { ref } from 'uni-app';
export default {
data() {
return {
message: ref('Hello from parent'),
};
},
onReceiveMessage(value) {
this.message.value = value;
},
};
</script>
<style scoped></style>
<!-- 父组件 -->
<my-component :receiveMessage="updateMessage"></my-component>
<script setup in="parentComponent.vue">
function updateMessage(newMessage) {
this.$emit('receiveMessage', newMessage);
}
</script>
```
在这个例子中,`$: ComponentInternalInstance` 实际上就是当前组件的实例,`$data.message` 被用于接收和展示来自父组件的更新消息。当父组件调用 `updateMessage` 并传入新值时,`onReceiveMessage` 方法会被触发,从而更新组件内部的 `message` 数据。
阅读全文