MST

星途 面试题库

面试题:React Props 与组件状态管理结合应用

假设你有一个多层嵌套的组件结构,顶层父组件的数据需要传递给深层子组件,且深层子组件对该数据的变化需要有响应式处理。同时,中间层组件可能会对传递的 Props 进行一些逻辑处理。请描述实现思路,并给出关键代码示例。
15.8万 热度难度
前端开发React

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. Props 逐层传递:通过在中间层组件接收父组件传递的 Props,然后再将其传递给子组件,实现数据从顶层父组件到深层子组件的传递。
  2. 中间层逻辑处理:在中间层组件中,对接收的 Props 进行所需的逻辑处理,处理后再传递给下一层。
  3. 响应式处理:使用 Vue.js 等框架自带的响应式系统,当顶层父组件数据变化时,深层子组件会自动响应更新。

关键代码示例(以 Vue.js 为例)

  1. 顶层父组件(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>
  1. 中间层组件(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>
  1. 深层子组件(Deep.vue)
<template>
  <div>
    <p>{{ processedData }}</p>
  </div>
</template>

<script>
export default {
  props: ['processedData']
};
</script>

以上代码展示了如何在多层嵌套组件结构中,从顶层父组件传递数据到深层子组件,并在中间层进行逻辑处理,同时保证深层子组件对数据变化的响应式。