MST

星途 面试题库

面试题:Solid.js中createSignal在组件间通信的基本方式

在Solid.js中,简述如何使用createSignal实现父子组件间的通信,请给出简单示例代码。
37.8万 热度难度
前端开发Solid.js

知识考点

AI 面试

面试题答案

一键面试

在Solid.js中,createSignal 用于创建响应式状态。实现父子组件间通信的方式如下:

  1. 父组件向子组件传递数据:父组件创建 signal 并将其值传递给子组件。
  2. 子组件更新父组件状态:子组件通过接收来自父组件传递的更新函数来更新父组件的状态。

以下是一个简单示例代码:

import { createSignal } from 'solid-js';
import { render } from'solid-js/web';

// 子组件
const Child = ({ count, setCount }) => {
  return (
    <div>
      <p>子组件接收到的count: {count()}</p>
      <button onClick={() => setCount(c => c + 1)}>子组件增加count</button>
    </div>
  );
};

// 父组件
const Parent = () => {
  const [count, setCount] = createSignal(0);
  return (
    <div>
      <p>父组件的count: {count()}</p>
      <Child count={count} setCount={setCount} />
    </div>
  );
};

render(() => <Parent />, document.getElementById('app'));

在上述代码中:

  • Parent 组件使用 createSignal 创建了 count 状态和 setCount 更新函数。
  • Parent 组件将 countsetCount 传递给 Child 组件。
  • Child 组件可以读取 count 的值并通过 setCount 函数更新 count 的值,从而实现父子组件间的通信。