vue的父子页面传参与通信(相互调用方法)

1.父级页面传给子页面传参并使用子页面方法
子页面接受用props
父级直接this.$refs.xx.xx()来调用子页面方法
2.子级页面传给父页面传参并使用父页面方法
子页面调用$emit传值给父级
父页面provide来提供方法子页面inject来接受方法

父级页面:
<child ref=‘detail’ :params="val"></child>
import detailVue from 'xxl'
components:{detailVue},
//引用子组件
this.$nextTick(()=>{ //当子组件用v-if时每次都能调用
  			this.$refs.detail.init();
  		})
  		//调用子组件的方法
  //子页面
  props:['params'],		//获取传参
  

这是父页面

<template>
	<div>
		<div class="father-box">
			<span>这是父级页面</span>
			<span>{
  {textp}}</span>
			<div>{
  {msg.name}}</div>
			<button @click="fatherClick">点我弹出子页面的方法</button>
		</div>
		<child ref='refChild' @sendMsg="getSonmsg" :num='num'></child>
	</div>
</template>

<script>
	im
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js中的父子组件通信是非常常见的需求,可以通过以下几种方式进行调用: 1. **props(属性传递)**:父组件向组件传递数据,这是最直接的方式。父组件通过`props`将数据绑定到组件的`data`属性上,组件通过`this.$props`来访问这些数据。 ```javascript // 父组件 <template> <child-component :data="parentData"></child-component> </template> <script> export default { data() { return { parentData: '这是父组件的数据' } } } </script> // 组件 <template> <div>{{ $props.data }}</div> </template> ``` 2. **事件(emit与on)**:组件通过`$emit`触发自定义事件,然后在父组件中监听这个事件并处理。 ```javascript // 组件 <template> <button @click="doSomething">点击我</button> </template> <script> export default { methods: { doSomething() { this.$emit('parentEvent', { message: '来自组件的事件' }); } } } </script> // 父组件 <template> <child-component @parentEvent="handleParentEvent"></child-component> </template> <script> export default { methods: { handleParentEvent(data) { console.log('父组件接收到:', data); } } } </script> ``` 3. **自定义指令(v-bind、v-on)**:可以使用自定义指令实现更复杂的父子组件通信,如动态绑定或事件监听。 4. **$parent/$refs**:特殊变量可以直接访问父组件的实例,但这种方式不推荐,因为它们不是响应式的,而且可能引发深层组件的引用问题。 5. **Vuex**:如果数据需要在多个组件之间共享和管理,可以使用状态管理库Vuex。 相关问题-- 1. Vue的prop默认是什么修饰符? 2. 在Vue中,什么情况下会使用自定义事件? 3. 使用$parent/$refs通信有什么缺点?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值