El método más básico para que el componente padre pase el valor al componente hijo es el siguiente: el
componente hijo lo recibe a través de accesorios
// 父组件
<template>
<div>
我是父组件
<testApi :environmentId="environmentId"></testApi>
</div>
</template>
<script>
import testApi from '@/views/apiManage/testApi'
export default {
data() {
return {
environmentId: ''
}
},
components: {
testApi
}
}
// 子组件
<template>
<div>
我是子组件
{
{
environmentId }}
</div>
</template>
<script>
export default {
// 接受父组件的值
props: {
environmentId: {
type: String// 定义接收到的数据的类型
default: '这个数据变量的默认值',
required: false //规定这个数据是否必传,默认false
}
},
data() {
return {
}
},
mounted () {
console.log(this.environmentId)
}
}
El segundo método es establecer directamente el valor en el componente secundario a través de esto. $ Refs.myTestApi.title = ''
// 父组件
<template>
<div>
我是父组件
<button @click="change">改变子组件里面的值</button>
<testApi ref="myTestApi"></testApi>
</div>
</template>
<script>
import testApi from '@/views/apiManage/testApi'
export default {
data() {
return {
}
},
components: {
testApi
},
methods: {
change() {
this.$refs.myTestApi.title = '新增产品'
}
}
}
// 子组件
<template>
<div>
我是子组件
{
{
title }}
</div>
</template>
<script>
export default {
data() {
return {
title: ''
}
},
mounted () {
console.log(this.title)
}
}
El método para que el componente secundario llame al componente principal es el siguiente: El
primer método: use $ emit en el componente secundario para desencadenar un evento en el componente principal, y el componente principal escucha este evento
// 父组件
<template>
<div>
我是父组件
<button @click="change">方法</button>
<testApi @change="change"></testApi>
</div>
</template>
<script>
import testApi from '@/views/apiManage/testApi'
export default {
data() {
return {
}
},
components: {
testApi
},
methods: {
change() {
console.log('我是猪')
}
}
}
// 子组件
<template>
<div>
我是子组件
{
{
title }}
</div>
</template>
<script>
export default {
data() {
return {
title: ''
}
},
mounted () {
this.$emit('change')
}
}
El segundo método es llamar al componente principal directamente en el componente secundario a través de este. $ Parent.event
// 父组件
<template>
<div>
我是父组件
<button @click="change">方法</button>
<testApi></testApi>
</div>
</template>
<script>
import testApi from '@/views/apiManage/testApi'
export default {
data() {
return {
}
},
components: {
testApi
},
methods: {
change() {
console.log('我是猪')
}
}
}
// 子组件
<template>
<div>
我是子组件
{
{
title }}
</div>
</template>
<script>
export default {
data() {
return {
title: ''
}
},
mounted () {
this.$parent.change()
}
}
El tercer componente principal pasa el método al componente secundario y llama a este método directamente en el componente secundario.
// 父组件
<template>
<div>
我是父组件
<button @click="change">方法</button>
<testApi :change="change"></testApi>
</div>
</template>
<script>
import testApi from '@/views/apiManage/testApi'
export default {
data() {
return {
}
},
components: {
testApi
},
methods: {
change() {
console.log('我是猪')
}
}
}
// 子组件
<template>
<div>
我是子组件
{
{
title }}
</div>
</template>
<script>
export default {
props: {
change: {
type: Function,
default: null
}
},
data() {
return {
title: ''
}
},
mounted () {
this.change()
}
}
Consulte este artículo para conocer el método de llamar al componente principal mediante el componente secundario de Vue . Varios usos pueden tener una eficiencia diferente. Si desea estudiar en profundidad, continúe buscando información detallada en Internet.