思潮课程 / 前端开发 / 正文

vue同级组件传值

2024-12-23前端开发 阅读 4

在Vue中,同级组件之间的传值能够经过事情总线(Event Bus)或许Vuex来完成。以下是一个简略的示例,演示怎么运用事情总线在同级组件之间传递数据。

首要,创立一个事情总线目标:

```javascript// eventbus.jsimport Vue from 'vue';export const EventBus = new Vue;```

在一个组件中发送事情:

```javascript// SenderComponent.vue Send Message

import { EventBus } from './eventbus.js';

export default { methods: { sendMessage { EventBus.$emit; } }}```

在另一个组件中监听事情:

```javascript// ReceiverComponent.vue {{ message }}

import { EventBus } from './eventbus.js';

export default { data { return { message: '' }; }, created { EventBus.$on => { this.message = message; }qwe2; }, beforeDestroy { EventBus.$off; }}```

在这个示例中,`SenderComponent` 在按钮点击时经过事情总线发送一个音讯。`ReceiverComponent` 在创立时监听这个事情,并在接纳到音讯时更新其数据特点。记住在组件毁掉前移除事情监听,以防止内存走漏。

这种办法适用于简略的场景。关于更杂乱的运用,主张运用Vuex来办理状况,它供给了更强壮的状况办理和组件通讯才能。

Vue同级组件传值详解

在Vue.js的开发过程中,组件之间的通讯是必不可少的。除了父子组件之间的通讯,同级组件之间的传值也是常见的需求。本文将具体介绍Vue同级组件传值的几种办法,协助开发者更好地了解和运用这些技巧。

一、事情总线(Event Bus)

事情总线是一种简略且常用的办法,用于完成Vue同级组件之间的通讯。它经过创立一个空的Vue实例作为中心事情总线,然后在组件内部运用`$emit`和`$on`办法来触发和监听事情。

1. 创立事情总线

首要,咱们需求创立一个事情总线实例:

```javascript

// event-bus.js

import Vue from 'vue';

export const EventBus = new Vue();

2. 触发事情

在需求触发事情的组件中,运用`$emit`办法来发送事情:

```javascript

// ChildComponent.vue

export default {

methods: {

sendEvent() {

EventBus.$emit('customEvent', 'Hello from Child!');

}

3. 监听事情

在需求接纳事情的组件中,运用`$on`办法来监听事情:

```javascript

// ParentComponent.vue

export default {

mounted() {

EventBus.$on('customEvent', (data) => {

console.log(data); // Hello from Child!

});

},

beforeDestroy() {

EventBus.$off('customEvent'); // 组件毁掉前撤销监听

二、Vuex

Vuex是一个专为Vue.js运用程序开发的状况办理模式。它选用集中式存储办理一切组件的状况,并以相应的规矩确保状况以一种可猜测的办法发生变化。运用Vuex能够完成同级组件之间的状况同享。

1. 装置Vuex

首要,你需求装置Vuex:

```bash

npm install vuex --save

2. 创立Vuex实例

创立一个Vuex实例,并在Vue实例中注入它:

```javascript

// store.js

import Vue from 'vue';

import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({

state: {

message: 'Hello from Vuex!'

},

mutations: {

updateMessage(state, payload) {

state.message = payload;

}

// main.js

import Vue from 'vue';

import App from './App.vue';

import store from './store';

new Vue({

store,

render: h => h(App)

}).$mount('app');

3. 同级组件拜访Vuex状况

在同级组件中,你能够经过`this.$store.state`来拜访Vuex状况:

```javascript

// ParentComponent.vue

export default {

computed: {

message() {

return this.$store.state.message;

}

4. 同级组件修正Vuex状况

在同级组件中,你能够经过`this.$store.commit`来修正Vuex状况:

```javascript

// ChildComponent.vue

export default {

methods: {

updateMessage() {

this.$store.commit('updateMessage', 'Hello from Child!');

}

三、$refs

`$refs`是Vue实例的一个特点,它答应你直接拜访DOM元素或子组件实例。经过运用`$refs`,你能够完成同级组件之间的直接通讯。

1. 引证子组件

在父组件中,运用`ref`特点来引证子组件:

```javascript

// ParentComponent.vue

猜你喜欢

  • html叫什么, HTML的来源与开展前端开发

    html叫什么, HTML的来源与开展

    HTML是超文本符号言语(HyperTextMarkupLanguage)的缩写,它是一种用于创立网页的规范符号言语。HTML能够解说页面内容,例如:标题、阶段、图片、链接、视频等。HTML:构建网页的柱石HTML的来源与开展...

    2024-12-23 3
  • html水平居中代码前端开发

    html水平居中代码

    1.文本内容:关于文本内容,可以运用`textalign:center;`款式来使其水平居中。2.块级元素:关于块级元素(如``、``等),可以运用`margin:0auto;`款式来完成水平居中。3.运用Flexbox:Fle...

    2024-12-23 4
  • vue翻滚字幕,Vue完成翻滚字幕的具体教程前端开发

    vue翻滚字幕,Vue完成翻滚字幕的具体教程

    在Vue中完成翻滚字幕作用,能够经过运用CSS动画或许JavaScript来完成。下面我会供给两种办法来完成这个功用。办法一:运用CSS动画1.HTML:创立一个容器来展现字幕。2.CSS:运用`@keyframes`界说动画,然后应...

    2024-12-23 2
  • css表格边框,款式、技巧与运用前端开发

    css表格边框,款式、技巧与运用

    1.设置表格边框宽度、款式和色彩:```csstable{border:2pxsolidblack;}```2.设置表格的单元格边框:```csstd{border:1pxsolidccc;}```3.设置表格...

    2024-12-23 3
  • html5页面布局,HTML5页面布局的根本结构前端开发

    html5页面布局,HTML5页面布局的根本结构

    2.呼应式布局:呼应式布局是指网页能够依据不同的设备和屏幕尺度主动调整布局,以供给最佳的用户体会。这一般经过运用CSS媒体查询来完成。3.Flexbox布局:Flexbox是一种CSS布局技能,它答应开发者更灵敏地摆放元素。...

    2024-12-23 3
  • html列表框前端开发

    html列表框

    HTML列表框(Listbox)是HTML中的一种表单元素,用于让用户从一组预界说的选项中挑选一个或多个选项。列表框可所以单选的,也可所以多选的。单选列表框答使用户挑选一个选项,而多选列表框答使用户挑选多个选项。以下是HTML列表...

    2024-12-23 3
  • vue知识点前端开发

    vue知识点

    Vue是一套用于构建用户界面的渐进式JavaScript结构。它被规划为能够自底向上逐层运用。Vue的中心库只重视视图层,不只易于上手,还便于与第三方库或既有项目整合。以下是Vue的一些首要知识点:这些知识点涵盖了Vue的根...

    2024-12-23 2
  • html分割线,```html    HTML 分割线示例前端开发

    html分割线,```html HTML 分割线示例

    HTML中的分割线可以经过``元从来创立。这个元素会创立一条水平线,一般用于在内容之间增加视觉上的分隔。以下是一个简略的比如:```htmlHTML分割线示例标题1这是榜首段文本。标题2这是第二段文本。在这个比如中,``...

    2024-12-23 5