Vue使用props父子组件传递数据

Vue使用props父子组件传递数据,下面提供一个使用参考。

父子组件传递数据

父组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<template>
<div>
<demo :msg='msgData' :math = 'mathData' ></demo>
</div>
</template>
<script>
import Demo from './Demo.vue'
export default {
data () {
return {
msgData:'从父组件接收来的数据',
mathData : 2
}
},
components : {
Demo
}
}
</script>

子组件

1
2
3
4
5
6
7
8
9
10
11
12
13
<template>
<div>
<p>{{msg}}</p>
<p>{{math}}</p>
</div>
</template>

<script>
export default {
name: 'demo',
props: [ 'msg' , 'math'],
}
</script>

父子组件传递函数

父组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<template>
<div>
<demo :fn = 'myFunction' ></demo>
</div>
</template>
<script>
import Demo from './Demo.vue'
export default {
components : {
Demo
},
methods: {
myFunction () {
console.log('vue')
}
}
}
</script>

子组件

1
2
3
4
5
6
7
8
9
10
11
12
<template>
<div>
<button @click='fn'>按钮</button>
</div>
</template>

<script>
export default {
name: 'demo',
props: [ 'fn' ],
}
</script>

另外,当传递的数量一旦多到已经让原子化不再结构清晰的时候,通过一个对象传递显得更为简洁明了。

父子组件传递对象数据

父组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<template>
<div>
<demo v-bind= 'msg' ></demo>
</div>
</template>
<script>
import Demo from './Demo.vue'
export default {
components : {
Demo
},
data () {
return {
msg : {a:1,b:2}
}
}
}
</script>

子组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<template>
<div>
<button>按钮</button>
</div>
</template>

<script>
export default {
name: 'demo',
props: ['a','b'],
created () {
console.log(this.a)
console.log(this.b)
},
}
</script>

坚持原创,您的支持是继续创作的动力!
0%