gpt4 book ai didi

javascript - 如何在VUE js中的组件之间共享数据(创建列表时)

转载 作者:行者123 更新时间:2023-11-28 17:49:01 25 4
gpt4 key购买 nike

您能告诉我如何在 VUE js 中的组件之间共享数据(创建列表时)。我有两个组件 list 组件add todo 组件。我想要当用户单击添加按钮时在列表中添加项目。但问题是输入字段存在于不同的组件中,并且列表存在于不同的组件中这是我的代码 https://plnkr.co/edit/bjsVWU6lrWdp2a2CjamQ?p=preview

//代码放在这里

var MyComponent = Vue.extend({
template: '#todo-template',
props: ['items']


});
var AddTODO = Vue.extend({
template: '#add-todo',
props: ['m'],
data: function () {
return {
message: ''
}
},
methods: {
addTodo: function () {
console.log(this.message)
console.log(this.m);
//this.m =this.message;
},
},
});
Vue.component('my-component', MyComponent);
Vue.component('add-todo', AddTODO)


var app = new Vue({
el: '#App',
data: {
message: '',
items: []
},


});

最佳答案

拥有一个出色的 MVVM 框架的全部意义在于让您拥有一个 View 模型:页面/应用程序/其他内容中所有状态的中央存储。组件可以发出事件。您可以拥有事件巴士。 但是如果您可以使用包含所有状态的简单全局变量来挽救局面,那么这是迄今为止最干净、最好的解决方案。因此,只需将待办事项放入全局范围内的变量中的数组中,然后在需要它们的每个组件的 data 中声明它们即可。 Here it is working in Plunkr .

标记

<div id="App" >
<add-todo></add-todo>
<my-component></my-component>
</div>
<template id="add-todo">
<div>
<input type="text" v-model="message">
<button @click="addTodo">Add todo</button>
</div>
</template>
<template id="todo-template">
<div>
<ul >
<li v-for="(item,index) in store.items">
{{item.message}}
</li>
</ul>
</div>
</template>
<script src="vue.js"></script>
<script src="script.js"></script>

代码

// This is the magic store. This is all you need.
var vueStore = {items : []};

var MyComponent = Vue.extend({
template: '#todo-template',
data : function(){return {store : vueStore}}
});
var AddTODO = Vue.extend({
template: '#add-todo',
data: function () {
return {
message: '',
store : vueStore
}
},
methods: {
addTodo: function (event) {
this.store.items.push({'message' : this.message})
},
},
});
Vue.component('my-component', MyComponent);
Vue.component('add-todo', AddTODO)
var app = new Vue({
el: '#App',
data: {
store : vueStore
},
});

这不是野蛮的黑客行为!我们被要求停止思考事件,向食物链上游移动,并考虑 react 管道。组件不关心中央存储何时或由谁更新。 Vue 会处理它。

Here's状态管理页面。

关于javascript - 如何在VUE js中的组件之间共享数据(创建列表时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46015442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com