搞懂Vue父子组件

首先明确区分一下父子组件:
A.vue文件被B.vue导入并且注册使用了,则:B是父组件,A是子组件。父子组件之间数据传递只能自上往下传递,即通过Prop:父—>子(B---->A)

此例中PkTable.vue为子组件App.vue为父组件

看代码:

//父组件传值(App.vue) 静态的值
<PkTable data="aaaaaa"></PkTable>
//父组件传值 动态的值
<PkTable :data="parentData"></PkTable>

<script>
import PkTabel from '@/components/PKATMRecord/PKTabel.vue';
export default {
  name: 'App',
  data(){
    return {
      parentData:"这是父组件的数据"
    }
  },
  components: {
    PkTabel
  },
  }
</script>


//子组件接收(PkTable.vue)
<h1>{{parentData}}</h1>

export default {
  name: 'HelloWorld',
  props: {
    parentData: String,
  }
}

子---->父传值(this. e m i t ) 通 过 触 发 父 组 件 的 事 件 来 传 值 说 明 : 每 个 v u e 实 例 都 实 现 了 事 件 接 口 : 使 用 emit)通过触发父组件的事件来传值 说明:每个vue实例都实现了事件接口:使用 emitvue使on(eventName)监听事件,使用$emit触发事件。另外,父组件可以在使用子组件的地方直接使用v-on来监听子组件触发的事件。

//子组件
<button @click.stop="changParent">按钮</button>

methods:{
  changParent(){
  this.$emit('childFn','childData')
 }
}

//父组件
<PkTable :data="parentData" @childFn="parentMethod"></PkTable>

methods:{
  parentMethod(msg){
  	console.log(msg);  //'childData'
 }
}

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一种流行的JavaScript框架,用于构建用户界面。在Vue中,父子组件之间传递数据是一种常见的需求。以下是一种常用的方法来实现父子组件之间的数据传递: 1. Props(属性):组件可以通过props属性向组件传递数据。在组件中,通过在组件标签上绑定属性的方式传递数据。在组件中,可以通过props选项接收并使用这些数据。 组件: ```html <template> <div> <child-component :message="parentMessage"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, data() { return { parentMessage: 'Hello from parent component' }; } } </script> ``` 组件: ```html <template> <div> <p>{{ message }}</p> </div> </template> <script> export default { props: ['message'] } </script> ``` 2. $emit(自定义事件):组件可以通过$emit方法触发自定义事件,并将需要传递的数据作为参数传递给组件。在组件中,通过在组件标签上监听自定义事件的方式接收数据。 组件: ```html <template> <div> <child-component @child-event="handleChildEvent"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, methods: { handleChildEvent(data) { console.log(data); // 在这里处理组件传递的数据 } } } </script> ``` 组件: ```html <template> <div> <button @click="emitEvent">触发事件</button> </div> </template> <script> export default { methods: { emitEvent() { this.$emit('child-event', 'Hello from child component'); // 触发自定义事件,并传递数据给组件 } } } </script> ``` 以上是Vue中实现父子组件之间传递数据的两种常用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值