有没有办法从另一个组件引用Vue变量

时间:2020-06-16 15:27:56

标签: javascript vue.js

我试图在单击按钮时将该函数返回的值反映为另一个组件的值。例如,在这种情况下,我有一个“选择”按钮,当按下该按钮时会打开一个对话框。在该对话框中选择一个文件夹后,我希望更新与输入绑定的变量。

现在,我正在使用在openPickerDialog中读取的自定义data-destination属性,然后将变量设置为选择器对话框返回的值。我试图使我的功能尽可能通用,以便我可以重用它。有没有更好的方法可以用Vue实现我想要的?内置的东西吗?

<div class='input-group align-items-end'>
  <input :id='destinationFolder' class='form-control shadow-none' type='text' v-model='destinationFolder'/>
  <span class='input-group-btn ml-2'>
    <button @click='openPickerDialog' class='btn btn-choose shadow-none' data-destination='destinationFolder' data-dialog='openDirectory' type='button'>Choose</button>
  </span>
</div>
openPickerDialog({target}) {
  window.api
      .send('openDialog', options)
      .then((results) => {
        if (results !== null) {
          this.$data[target.dataset.destination] = results[0]
        }
      })
      .catch((e) => {
        console.error(e)
      })
}

1 个答案:

答案 0 :(得分:0)

您是否尝试过Vuex进行全局状态管理? 因此,您可以引用其他组件的状态。