如何在vue js组合api中将反应变量从子组件传递到父组件

2023-12-05

我有两个组件,一个是父组件,另一个是子组件,父组件有一个表单字段,在这个表单字段中我可以添加其他表单字段,这个附加表单字段是在组件(表单字段)的帮助下添加的父组件中有自己的反应变量,附加组件也有自己的反应变量,因此当我要提交时,我需要捕获子组件中的反应变量详细信息,以便我可以将其作为表单传递给 api。

我已经尝试了 youtube 上的很多视频,大多数视频建议我使用 DefineProps() 方法来捕获从父组件到子组件的数据,但所有视频都没有给出如何从子组件捕获到父组件的数据,我尝试了该方法是否有效,反之亦然,但没有。


检查答案:

  • VUE.JS 3 更改一个同级组件与另一个组件的布尔值
  • Vue 组件之间传递变量

对于组件之间的数据共享,您可以使用自定义有状态存储对象或Pinia.

检查 Vue 文档

  • 状态管理

这是自定义有状态存储对象的一个​​非常基本的示例

const { createApp, ref, toRef, toRefs } = Vue;

const myStore = {
  counter: ref(0),
  add: function() {
    this.counter++ 
  }   
}

const template = 'counter = {{counter}}<br/>' 

const CompA = {
  setup() {
    const { counter } = myStore
    return  { counter }
  },
  template: template
}

const CompB = {
  setup() {
    const { counter } = myStore
    return  { counter }
  },
  template: template
}

const App = {
  components: { CompA, CompB },
  setup() {
    const { counter, add } = myStore
    return  { counter, add }
  }
}

const app = createApp(App)
app.mount('#app')
#app { line-height: 1.75; }
[v-cloak] { display: none; }
<div id="app">
  CompA: <comp-a></comp-a>
  CompB: <comp-b></comp-b>
  App: counter = {{counter}}<br/>
  <button @click="add()">+1</button>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在vue js组合api中将反应变量从子组件传递到父组件 的相关文章

随机推荐