O método mais básico para o componente pai passar o valor para o componente filho é o seguinte: o
componente filho o recebe por meio de props
// 父组件
<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)
}
}
O segundo método é definir diretamente o valor no componente filho por meio disso. $ 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)
}
}
O método para o componente filho chamar o componente pai é o seguinte: O
primeiro método: use $ emit no componente filho para acionar um evento para o componente pai, e o componente pai escuta 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')
}
}
O segundo método é chamar o componente pai diretamente no componente filho por meio deste. $ 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()
}
}
O terceiro componente pai passa o método para o componente filho e chama este método diretamente no componente filho
// 父组件
<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 artigo para obter o método de chamar o componente pai pelo componente filho do Vue . Vários usos podem ter eficiência diferente. Se você deseja estudar a fundo, continue a encontrar informações detalhadas na Internet