import { jsx, jsxs, Fragment } from 'solid-jsx/jsx-runtime';

/*@jsxRuntime automatic @jsxImportSource solid-jsx*/
const toc = [];
function _createMdxContent(props) {
  const _components = Object.assign({
    p: "p",
    a: "a",
    code: "code",
    pre: "pre",
    span: "span"
  }, props.components);
  return jsxs(Fragment, {
    children: [jsx(_components.p, {
      children: "props 관련해서, 머지 말고도 다른 작업이 필요합니다."
    }), "\n", jsx(_components.p, {
      children: "props를 그룹으로 나누어 현재 컴포넌트에서 일부를 사용하고, 나머지는 자식 컴포넌트로 전달하고 싶은 경우가 있습니다."
    }), "\n", jsxs(_components.p, {
      children: ["이를 위해 Solid는 ", jsx(_components.a, {
        href: "/docs/latest/api#splitprops",
        children: jsx(_components.code, {
          children: "splitProps"
        })
      }), "를 제공합니다. 이 함수는 props 객체와 추출하려는 하나 이상의 키 배열을 인수로 받습니다. 함수의 반환값은 props 객체의 배열이며, 지정한 키 배열당 하나씩의 props 객체에 추가로 미지정 키들에 해당하는 props 객체입니다. 반환된 모든 객체들은 반응성을 유지합니다."]
    }), "\n", jsxs(_components.p, {
      children: ["예제의 ", jsx(_components.code, {
        children: "greeting.tsx"
      }), " 파일에서 디스트럭처링을 사용하면서 반응성을 잃었기 때문에 이름을 설정하더라도 업데이트되지 않습니다.:"]
    }), "\n", jsx(_components.pre, {
      children: jsxs(_components.code, {
        className: "hljs language-jsx",
        children: [jsx(_components.span, {
          className: "hljs-keyword",
          children: "export"
        }), " ", jsx(_components.span, {
          className: "hljs-keyword",
          children: "default"
        }), " ", jsx(_components.span, {
          className: "hljs-keyword",
          children: "function"
        }), " ", jsx(_components.span, {
          className: "hljs-title function_",
          children: "Greeting"
        }), "(", jsx(_components.span, {
          className: "hljs-params",
          children: "props"
        }), ") {\n  ", jsx(_components.span, {
          className: "hljs-keyword",
          children: "const"
        }), " { greeting, name, ...others } = props;\n  ", jsx(_components.span, {
          className: "hljs-keyword",
          children: "return"
        }), " ", jsxs(_components.span, {
          className: "xml",
          children: [jsxs(_components.span, {
            className: "hljs-tag",
            children: ["<", jsx(_components.span, {
              className: "hljs-name",
              children: "h3"
            }), " {", jsx(_components.span, {
              className: "hljs-attr",
              children: "...others"
            }), "}>"]
          }), "{greeting} {name}", jsxs(_components.span, {
            className: "hljs-tag",
            children: ["</", jsx(_components.span, {
              className: "hljs-name",
              children: "h3"
            }), ">"]
          })]
        }), "\n}\n"]
      })
    }), "\n", jsxs(_components.p, {
      children: ["대신 ", jsx(_components.code, {
        children: "splitProps"
      }), "를 사용해 반응성을 유지할 수 있습니다:"]
    }), "\n", jsx(_components.pre, {
      children: jsxs(_components.code, {
        className: "hljs language-jsx",
        children: [jsx(_components.span, {
          className: "hljs-keyword",
          children: "export"
        }), " ", jsx(_components.span, {
          className: "hljs-keyword",
          children: "default"
        }), " ", jsx(_components.span, {
          className: "hljs-keyword",
          children: "function"
        }), " ", jsx(_components.span, {
          className: "hljs-title function_",
          children: "Greeting"
        }), "(", jsx(_components.span, {
          className: "hljs-params",
          children: "props"
        }), ") {\n  ", jsx(_components.span, {
          className: "hljs-keyword",
          children: "const"
        }), " [local, others] = ", jsx(_components.span, {
          className: "hljs-title function_",
          children: "splitProps"
        }), "(props, [", jsx(_components.span, {
          className: "hljs-string",
          children: "\"greeting\""
        }), ", ", jsx(_components.span, {
          className: "hljs-string",
          children: "\"name\""
        }), "]);\n  ", jsx(_components.span, {
          className: "hljs-keyword",
          children: "return"
        }), " ", jsxs(_components.span, {
          className: "xml",
          children: [jsxs(_components.span, {
            className: "hljs-tag",
            children: ["<", jsx(_components.span, {
              className: "hljs-name",
              children: "h3"
            }), " {", jsx(_components.span, {
              className: "hljs-attr",
              children: "...others"
            }), "}>"]
          }), "{local.greeting} {local.name}", jsxs(_components.span, {
            className: "hljs-tag",
            children: ["</", jsx(_components.span, {
              className: "hljs-name",
              children: "h3"
            }), ">"]
          })]
        }), "\n}\n"]
      })
    }), "\n", jsx(_components.p, {
      children: "이제 예상한대로 버튼이 잘 작동합니다."
    })]
  });
}
function MDXContent(props = {}) {
  const {wrapper: MDXLayout} = props.components || ({});
  return MDXLayout ? jsx(MDXLayout, Object.assign({}, props, {
    children: jsx(_createMdxContent, props)
  })) : _createMdxContent(props);
}

export { MDXContent as default, toc };
//# sourceMappingURL=lesson-4486af5b.js.map
