vue兄弟组件之间的传参
//子传父,父传子
A1要向A2传值 、 可以用$emit传给A、A在使用v-bind传给A2
<one :msg="msg" @decrease="decrease"/>
<two :msg="msg" @add="add"/>
可以使用计算属性来转换msg
使用父组件做中转
使用eventBus解决问题
1.创建一个空Vue对象
import Vue from 'vue';
export default new Vue;
2.$emit自定义事件
<input type="text" v-model="todoList">
<button class="add" @click='addList'>增加</button>
data(){
return {
todoList:''
}
},
methods:{
addList:function(){
eventBus.$emit('add',this.todoList)
}
}
3.$on接收事件
created:function(){
this.acceptList()
},
methods:{
acceptList:function(){
eventBus.$on('add',(message)=>{
this.lists.push({ name:message,isFinish:false })
})
}
}
使用vuex解决问题
创建store对象
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
var store=new Vuex.Store({
//存储状态
state:{
lists:[
{ name:'任务1',isFinish:false },
...
]
},
//显示的更改state
mutation:{},
//过滤state中的数据
getters:{},
//异步操作
actions:{}
});
export default store;
在组建中引入并使用
在组件1中
<input type="text" v-model="todoList">
<button class="add" @click='addList'>增加</button>
data(){
return {
todoList:''
}
},
store:store,
methods:{
addList:function(){
this.$store.state.lists.push({name:this.todoList,isFinish:false})
}
}
在组件2中
computed:{
lists:function(){
return this.$store.state.lists
}
},
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探