如果要在当前组件里读取另外一个组件的数据,可以使用 Vue 的 props 和 $emit。通过 props,可以将数据从父组件传递给子组件;通过 $emit,可以将事件从子组件传递给父组件。

例如,在父组件中定义一个数据:

<template>
  <div>
    <child :my-data="myData"></child>
  </div>
</template>

<script>
import Child from './Child.vue'

export default {
  components: {
    Child
  },
  data() {
    return {
      myData: 'Hello World'
    }
  }
}
</script>

然后在子组件中,通过 props 接收父组件传递过来的数据:

<template>
  <div>
    {{ myData }}
  </div>
</template>

<script>
export default {
  props: {
    myData: {
      type: String,
      default: ''
    }
  }
}
</script>

这样就可以在子组件中读取父组件传递过来的数据了。

如果要在子组件中修改父组件的数据,可以通过 $emit 来触发一个事件,然后在父组件中监听这个事件,从而修改数据。例如:

// 子组件
<template>
  <div>
    <button @click="updateMyData">Update My Data</button>
  </div>
</template>

<script>
export default {
  methods: {
    updateMyData() {
      this.$emit('update-my-data', 'New Data')
    }
  }
}
</script>


// 父组件
<template>
  <div>
    <child :my-data="myData" @update-my-data="onUpdateMyData"></child>
  </div>
</template>

<script>
import Child from './Child.vue'

export default {
  components: {
    Child
  },
  data() {
    return {
      myData: 'Hello World'
    }
  },
  methods: {
    onUpdateMyData(newData) {
      this.myData = newData
    }
  }
}
</script>

在子组件中,通过 $emit 触发了一个名为 "update-my-data" 的事件,并传递了一个新的数据 "New Data"。在父组件中,使用 @update-my-data 监听了这个事件,并在 onUpdateMyData 方法中将 myData 的值更新为新的数据。这样就实现了在子组件中修改父组件的数据。

Vue 在当前组件里读取另外一个组件的数据

原文地址: https://www.cveoy.top/t/topic/4Qn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录