相关疑难解决方法(0)

如何使用 VueJS 正确地将数据传递给同级组件?

假设我有CountrySelectCitySelect,其中CountrySelect列出了所有国家/地区,并且CitySelect仅列出了当前所选国家/地区的城市...

\n\n

通过新选择的国家的正确方法是什么?正如我在 vuejs 文档中读到的:

\n\n
\n

在Vue中,父子组件关系可以概括为props down,events up。父级通过 props 将数据传递给子级,子级通过事件向父级发送消息。接下来让\xe2\x80\x99s看看它们是如何工作的。

\n
\n\n

CountrySelect因此,在这种情况下,我将检测触发事件内部选择框的变化changed以及国家/地区对象。然后 的父组件CountrySelect将侦听此事件,然后当事件发生时将更新其属性country。属性country在父组件中被“观察到”,并且更改其值将导致 DOM 更新,因此<city-select>调用的标记上的 HTML 属性country将会更改。但是接下来我将如何检测CitySelect组件的属性更改,因为我需要通过 AJAX 重新加载城市。我考虑将country属性放入watch对象中CitySelect,但这对我来说似乎不是一个优雅的解决方案,感觉这样做不太正确......

\n\n
<template>\n    <parent>\n        <country-select name="country_id" v-model="country"></country-select>\n        <city-select name="city_id" :country="country" v-model="city"></city-select>\n    </parent>\n<template>\n\n<script>\n    export default {\n        data: function() {\n            return {\n                country: null,\n                city: null,\n            };\n        }\n    }\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我认为的另一种方法是,如果在父级中做这样的事情:

\n\n …

javascript vue.js vuejs2

2
推荐指数
1
解决办法
3332
查看次数

标签 统计

javascript ×1

vue.js ×1

vuejs2 ×1