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",
    code: "code",
    pre: "pre",
    span: "span"
  }, props.components);
  return jsxs(Fragment, {
    children: [jsx(_components.p, {
      children: "Props-Objekte zusammenzuführen ist nicht die einzige Operation, die wir machen können. Oft nutzen wir Destrukturierung, um manche der Props auf die gegenwärtige Komponente anzuwenden und andere abzuspalten, um sie an die Kind-Komponenten weiterzugeben."
    }), "\n", jsxs(_components.p, {
      children: ["Für diesen Zweck hat Solid ", jsx(_components.code, {
        children: "splitProps"
      }), ". Diese Methode nimmt das Props-Objekt und ein oder mehr Arrays von Eigenschaftsnamen entgegen, die in ihre eigenen Props-Objekte extrahiert werden sollen. Sie gibt ein Array von Props-Objekten zurück, eines pro Array mit Eigenschaftsnamen und ein weiteres mit den übrigen Eigenschaften, ähnlich wie beim Rest-Parameter. Alle zurückgegebenen Props-Objekte bewahren die Reaktivität."]
    }), "\n", jsxs(_components.p, {
      children: ["Unser Beispiel aktualisiert sich nicht, wenn wir den Namen ändern, da die Reaktivität durch das Destrukturieren in ", jsx(_components.code, {
        children: "greeting.tsx"
      }), " verloren gegangen ist:"]
    }), "\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: ["Stattdessen können wir die Reaktivität mit ", jsx(_components.code, {
        children: "splitProps"
      }), " beibehalten:"]
    }), "\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: "Jetzt funktioniert der Knopf wie erwartet."
    })]
  });
}
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-c9ae9495.js.map
