[vue] props传值,子组件直接改变父组件的值

彩蛋:后台管理系统一站式平台模板

vue-admin-wonderful,一套为开发者快速开发准备的基于 vue2.x 越看越精彩的后台管理系统一站式平台模板。基于element ui 2.14.0

  1. 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。

2.实例应用,比如自定义弹窗

主页:(父组件) 注意 .sync

<custom-dialog :visible.sync="dialogVisible"></custom-dialog>

export default {
	name: '',
	data() {
		return {
			dialogVisible: false
		}
	}
}

custom-dialog组件:(子组件)

<div>
	<button @click="onHide()">关闭</button>
</div>
export default {
	props: {
		visible: {
			type: Boolean,
			default: () => false
		}
	},
	methods: {
		onHide() {
			this.$emit('update:visible', false);
		}
	}
}

参考:ElemeFE/element.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,组件组件传递数据是通过props来实现的。而组件组件传递数据,则需要通过自定义事件来实现。 首先,在组件中,通过props属性将数据传递给组件。可以在组件标签上使用v-bind指令来动态绑定组件数据,或者直接组件标签上写入固定的。 例如,在组件中定义一个名为message的prop,并将一个字符串传递给组件: ```vue <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' }; } }; </script> ``` 然后,在组件中,可以通过props属性接收组件传递过来的数据,并在模板中使用该数据。 ```vue <template> <div> <p>{{ message }}</p> <button @click="sendMessageToParent">Send Message to Parent</button> </div> </template> <script> export default { props: ['message'], methods: { sendMessageToParent() { this.$emit('custom-event', 'Message from child'); } } }; </script> ``` 在组件中,可以使用`props`属性声明接收的属性名,然后在模板中直接使用即可。另外,如果需要向组件发送数据,可以使用`$emit`方法触发一个自定义事件,并传递需要发送的数据。 最后,在组件中,可以通过在组件标签上监听自定义事件来接收组件传递的数据。 ```vue <template> <div> <child-component :message="parentMessage" @custom-event="receiveMessageFromChild"></child-component> <p>Message received from child: {{ childMessage }}</p> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, data() { return { parentMessage: 'Hello from parent', childMessage: '' }; }, methods: { receiveMessageFromChild(message) { this.childMessage = message; } } }; </script> ``` 这样,就完成了组件组件传递数据的过程。当组件中的按钮被点击时,将会触发`custom-event`事件,并将消息发送给组件组件接收到消息后,将其保存在`childMessage`变量中,并在模板中进行展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值