【vue实战】父子组件互相传值

简介: 【vue实战】父子组件互相传值

题注

场景:首先,页面加载时父组件显示要处理的消息数;每次在子组件处理消息,父组件且是公共组件显示消息处理的剩余条数

分析:要把父组件的消息数传到子组件,当子组件点击确认或者取消按钮时,再把值传到父组件,通过父子组件互相传值,实现该功能

代码

父组件

html

 <template>
  //徽标
   <Badge :count="count">
              <router-link to="/News">
                <img class="demo-badge" src="static\pictureV1.0\Tobar\消息 (3).png" />
              </router-link>
   </Badge>
  //子组件在父组件的位置
    <div class="layout-content">
        //子组件,监听agreeNegotiate方法,当子组件点击触发agreeNegotiate方法时,同时触发父组件的agreeNegotiate方法
        <router-view v-model="count" @agreeNegotiate="agreeNegotiate"/> 
      </div>
</template>

js

<script>
//在父组件引入子组件才能构成父子关系
import News from '@/View/news/News';
export default {
  data() {
    return {
      count: "",
    };
  },
 components: {News},
 methods: {
    agreeNegotiate (childrenValue) {
        console.log(childrenValue); // 'abcde'
         this.count=childrenValue;
      },
 }
</script>
子组件

export default {
//接收父组件传值
  props: ['count'],
}
 agreeNegotiate(){
 //给父组件传值
  this.$emit('agreeNegotiate',vm.nowCount);
  }

代码分析

父组件给子组件传值

使用v-model,将绑定的值传给子组件,然后子组件使用props属性接收,就可以直接显示

子组件给父组件传值

子组件给父组件传值,在父组件的子组件标签上加上@监听方法

目录
相关文章
|
6天前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发
|
6天前
|
存储 JavaScript
Vue 状态管理工具vuex
Vue 状态管理工具vuex
|
11天前
|
JavaScript
如何在 Vue 中使用具名插槽
【10月更文挑战第25天】通过使用具名插槽,你可以更好地组织和定制组件的模板结构,使组件更具灵活性和可复用性。同时,具名插槽也有助于提高代码的可读性和可维护性。
15 2
|
11天前
|
JavaScript
Vue 中的插槽
【10月更文挑战第25天】插槽的使用可以大大提高组件的复用性和灵活性,使你能够根据具体需求在组件中插入不同的内容,同时保持组件的结构和样式的一致性。
14 2
|
JavaScript
Vue父子组件传值(porvide+inject实现组件通信)
如果我们需要把父组件的值传递给子组件,而且子组件可能存在层层嵌套,那么就可以使用provide+inject的方法来实现组件之间的通信
191 0
Vue父子组件传值(porvide+inject实现组件通信)
|
JavaScript 前端开发
前端-vue基础63-非父子组件传值
前端-vue基础63-非父子组件传值
89 0
前端-vue基础63-非父子组件传值
|
JavaScript
Vue父子组件传值通讯,超详细注释
Vue父子组件传值通讯,超详细注释
237 0
|
JavaScript 开发工具 git
23、vue父子组件之间的传值
前言:本章主要说下父子组件的传值,为商品列表组件之间的传值做一个基础预热。 Github:https://github.com/Ewall1106/mall(请选择分支chapter23) 1、父组件向子组件传值 (1)第一个就是要明白怎么在父页面中向子组件中传值? 你可以给子组件传入一个静态的值: 图片来自vue官网 但我们一般都是需要传动态的值,所以需要v-bind绑定: 图片来自vue官网 当然,你传的值可以是数字、对象、数组等等,参见vue官网。
1149 0