vue简单的组件传值

父传子

子组件代码:

<template>
  <div>
      {{text}}----{{msg}}
</div>
</template>

<script>
export default {
  data() {
    return {
      text: "子组件"
    };
  },
  props:['msg']//props接收父组件的值
};
</script>

<style>
</style>

父组件代码:

<template>
 <div>
   首页
   <Mycom :msg="msg"></Mycom>//添加msg属性 这里用了动态绑定

 </div>
 
</template>

<script>
// @ is an alias to /src
import Mycom from "@/components/Mycom.vue"
export default {
  name: 'home',
  data(){
    return{
      msg:"我是父组件的数据"
    }
  },
  components: {
   Mycom
  }
}
</script>

子传父:

1.子组件绑定一个事件,并在该事件中触发一个自定义事件this.$emit ("自定义事件名",“要向父组件传递的数据”)

2.父组件中的子组件标签中监听该自定义事件并添加一个响应该事件的处理方法 @自定义事件名=“响应该事件的处理方法”,

3.在父组件的methods中创建响应该事件的处理方法并用参数接受子组件传来的值

代码如下:

子组件Mycom:

<template>
  <div>
       <h1>子组件</h1>
      <button @click="sendmsgtoparent">点击向父组件传递数据</button>   
</div>
</template>

<script>
export default {
  data() {
    return {
      submsg:"我是子组件的值"
    };
  },
  methods:{
      sendmsgtoparent(){
          this.$emit("listentochild",this.submsg)
      }
  }
};
</script>

<style>
</style>

父组件App

<template>
 <div>
   <h1>父组件</h1>
   <Mycom @listentochild="showmsgfromchild"></Mycom>

 </div>
 
</template>

<script>
import Mycom from "@/components/Mycom.vue"
export default {
  name: 'home',
  data(){
    return{
    }
  },
  components: {
   Mycom
  },
  methods:{
    showmsgfromchild(data){
      console.log(data)
    }
  }
}
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2和Vue 3中,组件传值的方式有一些差异。下面我将介绍Vue 2和Vue 3中常用的几种组件传值方式: Vue 2中的组件传值方式: 1. Props:通过在父组件中使用属性绑定的方式将数据传递给子组件。父组件通过在子组件标签上绑定属性,并在子组件中通过props选项声明接收该属性。父组件可以在模板中直接使用子组件的属性。 2. 自定义事件:父组件可以通过`$emit`方法触发自定义事件,并传递数据给子组件。子组件通过`$on`方法监听父组件触发的事件,并在事件处理函数中接收数据。 3. Vuex:Vuex是Vue的状态管理库,可以在全局共享数据。父组件可以将数据存储在Vuex的状态管理中,并在子组件中通过计算属性或直接从Vuex中获取数据。 Vue 3中的组件传值方式: 1. Props:与Vue 2相同,通过在父组件中使用属性绑定的方式将数据传递给子组件。但是在Vue 3中,子组件需要使用`defineProps`来声明接收属性。 2. 自定义事件:与Vue 2相同,父组件可以通过`$emit`方法触发自定义事件,并传递数据给子组件。子组件通过`$on`方法监听父组件触发的事件,并在事件处理函数中接收数据。 3. Provide/Inject:父组件通过provide选项提供数据,然后子组件通过inject选项注入数据。这样可以在整个组件树中共享数据,而不需要显式传递。 需要注意的是,Vue 3中还引入了Composition API,通过`setup`函数来组织组件的逻辑。在`setup`函数中,可以使用`ref`和`reactive`等函数来创建响应式数据,并通过`props`参数接收父组件传递的属性。 以上是Vue 2和Vue 3中常用的组件传值方式,根据具体需求和场景选择合适的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值