Javascript 重新加载另一个Vue组件内部的Vue组件

Javascript 重新加载另一个Vue组件内部的Vue组件,javascript,vue.js,Javascript,Vue.js,我有一个Vue组件01,其中一个包含另一个Vue组件,即Vue组件02。在Vue 01中,我使用ajax请求获取数据并将其作为Vue 02的道具传递给Vue 02。但问题是,在一个ajax请求之后,vue 02不会根据新数据刷新其道具,除非我刷新web浏览器,是否有任何方法可以像每次ajax请求一样仅刷新vue 01中的组件 编辑:这是vue 01中的子vue <show-data-table v-if="show_data_table"

我有一个Vue组件01,其中一个包含另一个Vue组件,即Vue组件02。在Vue 01中,我使用ajax请求获取数据并将其作为Vue 02的道具传递给Vue 02。但问题是,在一个ajax请求之后,vue 02不会根据新数据刷新其道具,除非我刷新web浏览器,是否有任何方法可以像每次ajax请求一样仅刷新vue 01中的组件

编辑:这是vue 01中的子vue

<show-data-table
            v-if="show_data_table"
            :data=this.selected_table_data
            :col_names=this.selected_table_col_names
            :header=this.header
            :columns_count=this.col_count
            :rows_count=this.row_count
            :tble_name=this.selected_table_name
            :database=this.db_name
        ></show-data-table>
数据部分:

data() {
        return {
            db_name: this.database_name,
            tables: this.database_tables,
            table_name: "",
            selected_table_name: "",
            selected_table_data: [],
            selected_table_col_names: [],
            show_data_table: false,
            name: "",
            header: true,
            row_count: 0,
            col_count: 0,
            servs: false,
        };
    },

很难说没有更多的代码

两个最常见的错误:

  • 必须在父组件的
    data
    部分声明父组件中所有应为被动的数据,否则它将不会是被动的:
  • 数据:{
    返回(){
    所选表格数据:[],
    所选表格名称:[],
    所选表格列名称:[]
    }
    }
    

  • 子级应直接使用道具,而不是声明自己的数据并从道具初始化:
  • 不要那样做(孩子):

    数据:{
    返回(){
    所选表格数据:此。所选表格数据,
    所选表格名称:此。所选表格名称,
    所选表格列名称:此。所选表格列名称
    }
    }
    

    原因:
    data
    创建组件时,子组件的函数只运行一次。如果它存储了由props从父级提供的引用,并且父级的props值随后被新值替换,则子级将不知道该更改。

    您可以为组件分配键<代码>。每次要刷新组件时,将myComponentKey更改为所需的任意值。但奇怪的是,Vue没有刷新道具。你能分享你的代码吗?你做错了什么,如果你通过道具将数据传递给子组件,并且如果父组件数据被更新,那么当我们设置通过道具重新激活时,一切都应该正常,如果事情仍然不清楚,请在skype上Ping me:syed_Haroon伙计们,我已经在这里发布了代码,家长对新数据做出了响应,但孩子出于某种原因不接受这些数据,请显示更多代码……是的,孩子有自己独特的数据。它没有复制。请随意告诉我我错了。。。但是由于组件2没有在每次接收新数据时重新安装,所以这不是问题吗??我找到了解决方案,它只不过是为子组件分配了一个键,这样它就会根据键的变化重新渲染自己。谢谢大家花时间在这个问题上这不是一个好的解决方案-只是一个黑客…它会在未来烧死你。。。
    data() {
            return {
                db_name: this.database_name,
                tables: this.database_tables,
                table_name: "",
                selected_table_name: "",
                selected_table_data: [],
                selected_table_col_names: [],
                show_data_table: false,
                name: "",
                header: true,
                row_count: 0,
                col_count: 0,
                servs: false,
            };
        },