vue2和vue3的父子传值区别,写出代码示例
时间: 2024-02-21 10:55:42 浏览: 83
vue2与vue3的使用区别与组件通信
在Vue.js中,父子组件之间的数据传递是通过props属性实现的。Vue 2和Vue 3在父子组件传值方面有一些区别。
在Vue 2中,父组件通过props属性将数据传递给子组件,子组件通过props接收数据。父组件可以通过v-bind指令将数据动态绑定到子组件的props上。
示例代码如下:
父组件:
```
<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>
```
子组件:
```
<template>
<div>
<p>{{ message }}</p>
</div>
</template>
<script>
export default {
props: ['message']
};
</script>
```
在Vue 3中,父组件传递数据给子组件的方式有所改变。父组件通过v-bind指令将数据动态绑定到子组件的props上,但是需要使用`v-bind`的缩写符号`:`来表示。
示例代码如下:
父组件:
```
<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>
```
子组件:
```
<template>
<div>
<p>{{ message }}</p>
</div>
</template>
<script>
export default {
props: {
message: String
}
};
</script>
```
注意,在Vue 3中,props的定义方式发生了变化,需要使用对象的形式来定义props的类型。
阅读全文