当前位置:首页 > VUE

vue联动实现代码

2026-02-23 18:23:50VUE

Vue 联动实现代码示例

Vue 中实现联动效果通常涉及父子组件通信、数据绑定或状态管理。以下是几种常见场景的代码示例:

表单联动(下拉框选择后动态加载内容)

<template>
  <div>
    <select v-model="selectedCountry" @change="loadCities">
      <option v-for="country in countries" :value="country.id" :key="country.id">
        {{ country.name }}
      </option>
    </select>

    <select v-model="selectedCity" :disabled="!cities.length">
      <option v-for="city in cities" :value="city.id" :key="city.id">
        {{ city.name }}
      </option>
    </select>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedCountry: null,
      selectedCity: null,
      countries: [
        { id: 1, name: '中国' },
        { id: 2, name: '美国' }
      ],
      cities: []
    }
  },
  methods: {
    loadCities() {
      // 模拟API请求
      const cityData = {
        1: [{ id: 101, name: '北京' }, { id: 102, name: '上海' }],
        2: [{ id: 201, name: '纽约' }, { id: 202, name: '洛杉矶' }]
      }
      this.cities = cityData[this.selectedCountry] || []
      this.selectedCity = null
    }
  }
}
</script>

组件间联动(通过事件总线)

// eventBus.js
import Vue from 'vue'
export const EventBus = new Vue()

// ComponentA.vue
<template>
  <button @click="sendMessage">发送消息</button>
</template>

<script>
import { EventBus } from './eventBus'
export default {
  methods: {
    sendMessage() {
      EventBus.$emit('message', 'Hello from Component A')
    }
  }
}
</script>

// ComponentB.vue
<script>
import { EventBus } from './eventBus'
export default {
  created() {
    EventBus.$on('message', (msg) => {
      console.log('Received:', msg)
    })
  }
}
</script>

使用Vuex实现状态联动

// store.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++
    }
  }
})

// ComponentA.vue
<template>
  <button @click="incrementCount">增加</button>
</template>

<script>
export default {
  methods: {
    incrementCount() {
      this.$store.commit('increment')
    }
  }
}
</script>

// ComponentB.vue
<template>
  <div>当前计数: {{ count }}</div>
</template>

<script>
export default {
  computed: {
    count() {
      return this.$store.state.count
    }
  }
}
</script>

动态组件联动

<template>
  <div>
    <button @click="currentComponent = 'ComponentA'">显示A</button>
    <button @click="currentComponent = 'ComponentB'">显示B</button>
    <component :is="currentComponent" :key="currentComponent"></component>
  </div>
</template>

<script>
import ComponentA from './ComponentA'
import ComponentB from './ComponentB'

export default {
  data() {
    return {
      currentComponent: 'ComponentA'
    }
  },
  components: {
    ComponentA,
    ComponentB
  }
}
</script>

这些示例涵盖了Vue中实现联动的常见模式,可根据实际需求选择合适的实现方式。表单联动适合数据依赖场景,事件总线适合非父子组件通信,Vuex适合全局状态管理,动态组件适合视图切换场景。

vue联动实现代码

标签: 代码vue
分享给朋友:

相关文章

vue实现共享屏幕

vue实现共享屏幕

共享屏幕的基本实现 在Vue中实现共享屏幕功能通常需要结合浏览器的getDisplayMedia API。以下是一个基础实现示例: <template> <div>…

vue实现访问量

vue实现访问量

Vue 实现访问量统计的方法 使用前端计数 在 Vue 中可以通过简单的计数器实现页面访问量的统计。这种方法适合小型项目或演示用途。 // 在 Vue 组件中 data() { return…

vue实现发表

vue实现发表

Vue 实现发表功能 在 Vue 中实现发表功能通常涉及表单处理、数据绑定和网络请求。以下是实现步骤和代码示例: 表单设计与数据绑定 创建一个表单用于输入发表内容,使用 v-model 进行数据双向…

vue 实现回复

vue 实现回复

Vue 实现回复功能 在 Vue 中实现回复功能通常涉及表单提交、数据绑定和列表渲染。以下是实现步骤和代码示例: 数据绑定与表单 <template> <div>…

vue课程实现

vue课程实现

Vue 课程实现方案 课程内容设计 Vue课程应从基础到高级逐步展开,涵盖Vue核心概念、组件化开发、状态管理、路由、构建工具等。基础部分包括Vue实例、模板语法、计算属性和侦听器。中级部分深入组件通…

vue实现api

vue实现api

Vue 实现 API 调用 在 Vue 中调用 API 通常涉及使用 axios 或 fetch 发送 HTTP 请求,并结合 Vue 的响应式特性管理数据。以下是常见的实现方式: 安装 axi…