欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 15vue3实战-----props和emit传值

15vue3实战-----props和emit传值

2025/2/13 22:20:05 来源:https://blog.csdn.net/fageaaa/article/details/145537508  浏览:    关键词:15vue3实战-----props和emit传值

15vue3实战-----props和emit传值

  • 1.emit的使用
  • 2.配合props实现完整父子通信

vue3中props和emit的使用有点不一样,但万变不离其宗。

1.emit的使用

子组件:

<script setup lang="ts">
// 定义触发的事件及其数据类型
const emit = defineEmits(['update', 'delete']);// 触发事件
const handleUpdate = () => {emit('update', { id: 1, name: 'Vue 3' });
};const handleDelete = () => {emit('delete', 1); // 触发 delete 事件,传递一个 ID
};
</script><template><button @click="handleUpdate">更新</button><button @click="handleDelete">删除</button>
</template>

父组件:

<script setup lang="ts">
import ChildComponent from './ChildComponent.vue';
const handleUpdate = (data) => {console.log('更新事件触发:', data);
};const handleDelete = (id) => {console.log('删除事件触发,ID:', id);
};
</script><template><ChildComponent @update="handleUpdate" @delete="handleDelete" />
</template>

2.配合props实现完整父子通信

子组件与父组件完整通信流程是:

  • 父组件通过 props 将数据传递给子组件。
  • 子组件通过 emit 将事件通知给父组件。

子组件:

<script setup lang="ts">// 定义 props
const props = defineProps({value: String
});
//定义 emit
const emit = defineEmits(['input']);// 修改输入时触发 input 事件
const handleInput = (event) => {emit('input', event.target.value);
};
</script><template><input :value="value" @input="handleInput" />
</template>

父组件:

<script setup lang="ts">
import ChildComponent from './ChildComponent.vue';
import { ref } from 'vue';const inputValue = ref('初始值');const handleInput = (value) => {inputValue.value = value;
};
</script><template><ChildComponent :value="inputValue" @input="handleInput" /><p>父组件中的值:{{ inputValue }}</p>
</template>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com