面试题答案
一键面试实现思路
- Props 逐层传递:通过在中间层组件接收父组件传递的 Props,然后再将其传递给子组件,实现数据从顶层父组件到深层子组件的传递。
- 中间层逻辑处理:在中间层组件中,对接收的 Props 进行所需的逻辑处理,处理后再传递给下一层。
- 响应式处理:使用 Vue.js 等框架自带的响应式系统,当顶层父组件数据变化时,深层子组件会自动响应更新。
关键代码示例(以 Vue.js 为例)
- 顶层父组件(Parent.vue)
<template>
<div>
<Middle :data="parentData"></Middle>
<button @click="updateParentData">更新数据</button>
</div>
</template>
<script>
import Middle from './Middle.vue';
export default {
components: { Middle },
data() {
return {
parentData: '初始数据'
};
},
methods: {
updateParentData() {
this.parentData = '更新后的数据';
}
}
};
</script>
- 中间层组件(Middle.vue)
<template>
<div>
<Deep :processedData="processData"></Deep>
</div>
</template>
<script>
import Deep from './Deep.vue';
export default {
components: { Deep },
props: ['data'],
computed: {
processData() {
// 这里进行逻辑处理,例如添加前缀
return '处理后:' + this.data;
}
}
};
</script>
- 深层子组件(Deep.vue)
<template>
<div>
<p>{{ processedData }}</p>
</div>
</template>
<script>
export default {
props: ['processedData']
};
</script>
以上代码展示了如何在多层嵌套组件结构中,从顶层父组件传递数据到深层子组件,并在中间层进行逻辑处理,同时保证深层子组件对数据变化的响应式。