Vue.js 通过事件总线呈现的渲染项-Vue js 这是一个数据页 {{data.title} 从“../main”导入{eventBus} 导出默认值{ 名称:“数据”, 数据(){ 返回{ Dummy数据:[ { id:1, 标题:“虚拟数据一号”, 已完成:false }, { id:2, 标题:“虚拟数据二”, 已完成:false }, { id:3, 标题:“虚拟数据三”, 已完成:false }, ] } }, 创建(){ eventBus.$on('pass-todo',(**obj**)=>{ var parsedobj=JSON.parse(JSON.stringify(obj)) console.log(parsedobj) }) } }

Vue.js 通过事件总线呈现的渲染项-Vue js 这是一个数据页 {{data.title} 从“../main”导入{eventBus} 导出默认值{ 名称:“数据”, 数据(){ 返回{ Dummy数据:[ { id:1, 标题:“虚拟数据一号”, 已完成:false }, { id:2, 标题:“虚拟数据二”, 已完成:false }, { id:3, 标题:“虚拟数据三”, 已完成:false }, ] } }, 创建(){ eventBus.$on('pass-todo',(**obj**)=>{ var parsedobj=JSON.parse(JSON.stringify(obj)) console.log(parsedobj) }) } },vue.js,Vue.js,如何将来自另一个组件的对象通过evenBus传递到模板,以便渲染它??更具体地说,我实际上想将即将出现的对象添加到dummyData中,并无论如何渲染它 我不会问你为什么不使用道具:/remove the**的包装对象,然后做this.dummyData=JSON.parse(JSON.stringify(obj))我只需要使用一个组件就可以在页面中查看dummyData和其他组件数据(我在这里已经获取的对象数组)。在这里获取它已创建,但无法在模板中传递它以进行渲染。好的。我已删除**及其工作模

如何将来自另一个组件的对象通过evenBus传递到模板,以便渲染它??更具体地说,我实际上想将即将出现的对象添加到dummyData中,并无论如何渲染它

我不会问你为什么不使用道具:/remove the**的包装对象,然后做
this.dummyData=JSON.parse(JSON.stringify(obj))
我只需要使用一个组件就可以在页面中查看dummyData和其他组件数据(我在这里已经获取的对象数组)。在这里获取它已创建,但无法在模板中传递它以进行渲染。好的。我已删除**及其工作模式。我把控制台拿出来了。现在,我如何将dummyData传递给模板进行渲染?请重新阅读上面的评论,最后的部分将解决此问题。。请注意:如果您发送的数组具有与之相同的id,则不会重新渲染,如果它们没有更改,请注意:请注意,Vue3中的eventBus正在消失:我强烈建议您更好地组织组件,以便将其作为道具传递
<template>
  <div>
    <h1>This is a data page</h1>
    <p v-for="data in dummyData" :key="data.id">{{ data.title }}</p>
  </div>
</template>

<script>
import { eventBus } from '../main'

export default {
  name: "Data",
  data() {
    return {
      dummyData: [
        {
          id: 1,
          title: "Dummy Data One",
          completed: false
        },
        {
          id: 2,
          title: "Dummy Data Two",
          completed: false
        },
        {
          id: 3,
          title: "Dummy Data Three",
          completed: false
        },
      ]
    }
  },

  created() {
    eventBus.$on('pass-todo', (**obj**) => {
      var parsedobj = JSON.parse(JSON.stringify(obj))
      console.log(parsedobj)
    })
  }
}
</script>