第42节: Vue3 组件之间传值

简介: 第42节: Vue3 组件之间传值

在UniApp中使用Vue3框架时,有多种方式可以在组件之间进行传值。以下是几种常见的示例:

  1. 使用props和事件(父组件向子组件传值):

父组件:

<template>  
  <view>  
    <child-component :message="parentMessage" @child-event="handleChildEvent"></child-component>  
  </view>  
</template>  
<script setup>  
import { ref } from 'vue';  
import ChildComponent from './ChildComponent.vue';  
const parentMessage = ref('Hello from parent component!');  
const childComponent = ref(null);  
onMounted(() => {  
  childComponent.value = new ChildComponent({ props: { message: parentMessage.value } });  
});  
methods: {  
  handleChildEvent(event) {  
    console.log(event);  
  }  
}  
</script>

子组件(ChildComponent.vue):

<template>  
  <view @click="sendEvent">  
    <p>{{ message }}</p>  
  </view>  
</template>  
<script setup>  
import { ref, emit } from 'vue';  
const message = ref('');  
const sendEvent = () => { emit('child-event') }  
</script>

在上面的示例中,父组件通过v-bind指令将parentMessage的值传递给子组件,并在子组件上注册了一个名为child-event的事件监听器。子组件接收到父组件传递的值并在模板中进行显示,同时当点击时触发名为child-event的事件,将事件对象作为参数传递给父组件的handleChildEvent方法。

\2. 使用Vuex(全局状态管理):

在UniApp中,可以使用Vuex来进行全局状态管理,将数据存储在一个集中式的存储中,并在多个组件之间共享。以下是一个简单的示例:

首先,在项目根目录下创建一个名为store.js的文件,用于定义Vuex的store:

store.js:

import { createStore } from 'vuex';  
import ChildComponent from './ChildComponent.vue';  
import ParentComponent from './ParentComponent.vue';  
const store = createStore({  
  state: {  
    message: ''  
  },  
  mutations: {  
    setMessage(state, value) { state.message = value }  
  },  
  modules: { }  
});  
export default store;

订阅专栏,每日更新

相关文章
|
4月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
374 2
|
3月前
|
JavaScript 前端开发 安全
Vue 3
Vue 3以组合式API、Proxy响应式系统和全面TypeScript支持,重构前端开发范式。性能优化与生态协同并进,兼顾易用性与工程化,引领Web开发迈向高效、可维护的新纪元。(238字)
630 139
|
3月前
|
缓存 JavaScript 算法
Vue 3性能优化
Vue 3 通过 Proxy 和编译优化提升性能,但仍需遵循最佳实践。合理使用 v-if、key、computed,避免深度监听,利用懒加载与虚拟列表,结合打包优化,方可充分发挥其性能优势。(239字)
298 1
|
7月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
862 0
|
4月前
|
开发工具 iOS开发 MacOS
基于Vite7.1+Vue3+Pinia3+ArcoDesign网页版webos后台模板
最新版研发vite7+vue3.5+pinia3+arco-design仿macos/windows风格网页版OS系统Vite-Vue3-WebOS。
469 11
|
3月前
|
JavaScript 安全
vue3使用ts传参教程
Vue 3结合TypeScript实现组件传参,提升类型安全与开发效率。涵盖Props、Emits、v-model双向绑定及useAttrs透传属性,建议明确声明类型,保障代码质量。
336 0
|
5月前
|
缓存 前端开发 大数据
虚拟列表在Vue3中的具体应用场景有哪些?
虚拟列表在 Vue3 中通过仅渲染可视区域内容,显著提升大数据列表性能,适用于 ERP 表格、聊天界面、社交媒体、阅读器、日历及树形结构等场景,结合 `vue-virtual-scroller` 等工具可实现高效滚动与交互体验。
527 1
|
5月前
|
缓存 JavaScript UED
除了循环引用,Vue3还有哪些常见的性能优化技巧?
除了循环引用,Vue3还有哪些常见的性能优化技巧?
313 0
|
6月前
|
JavaScript
vue3循环引用自已实现
当渲染大量数据列表时,使用虚拟列表只渲染可视区域的内容,显著减少 DOM 节点数量。
148 0
|
3月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
346 137

热门文章

最新文章