Skip to content

Latest commit

ย 

History

History
63 lines (51 loc) ยท 3.54 KB

web-components.md

File metadata and controls

63 lines (51 loc) ยท 3.54 KB
id title permalink redirect_from
web-components
ู…ูƒูˆู†ุงุช ุงู„ูˆูŠุจ
docs/web-components.html
docs/webcomponents.html

ุฅู†ู‘ ู…ูƒูˆู‘ู†ุงุช React ูˆู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ู…ุจู†ูŠุฉ ู„ุญู„ ู…ุดุงูƒู„ ู…ุฎุชู„ูุฉ. ุญูŠุซ ุชูุฒูˆูู‘ุฏู†ุง ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ุจุชุบู„ูŠู ู‚ูˆูŠ ู„ู…ูƒูˆู‘ู†ุงุช ู‚ุงุจู„ุฉ ู„ุฅุนุงุฏุฉ ุงู„ุงุณุชุฎุฏุงู…ุŒ ุจูŠู†ู…ุง ุชูุฒูˆูู‘ุฏู†ุง ู…ูƒูˆู‘ู†ุงุช React ุจู…ูƒุชุจุฉ ุชุตุฑูŠุญุงุช ุชูุจู‚ูŠ DOM ุนู„ู‰ ุชุฒุงู…ู† ู…ุน ุจูŠุงู†ุงุชู†ุง. ูŠูƒูˆู† ู‡ุฐุง ุงู„ู‡ุฏูุงู† ู…ุชูƒุงู…ู„ูŠู†ุŒ ูˆูƒู…ูุทูˆู‘ุฑ ู„ูƒ ุญุฑูŠุฉ ุงุณุชุฎุฏุงู… React ููŠ ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ู„ุฏูŠูƒุŒ ุฃูˆ ุงุณุชุฎุฏุงู… ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ููŠ React ุฃูˆ ูƒู„ูŠู‡ู…ุง ู…ุนู‹ุง.

ู…ุนุธู… ู…ู† ูŠุณุชุฎุฏู… React ู„ุง ูŠุณุชุฎุฏู… ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจุŒ ูˆู„ูƒู† ู‚ุฏ ุชุฑุบุจ ููŠ ุฐู„ูƒ ุฎุงุตุฉ ุฅุฐุง ูƒู†ุช ุชุณุชุฎุฏู… ู…ูƒูˆู‘ู†ุงุช ู„ูˆุงุฌู‡ุฉ ุงู„ู…ุณุชุฎุฏู… ู…ู† ุทุฑู ุซุงู„ุซ ูˆุงู„ุชูŠ ุชูƒูˆู† ู…ูƒุชูˆุจุฉ ุจุงุณุชุฎุฏุงู… ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ.

ุงุณุชุฎุฏุงู… ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ููŠ React {#using-web-components-in-react}

class HelloMessage extends React.Component {
  render() {
    return <div>ุฃู‡ู„ู‹ุง <x-search>{this.props.name}</x-search>!</div>;
  }
}

ู…ู„ุงุญุธุฉ:

ุชุนุฑุถ ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ุนุงุฏุฉ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุชุทุจูŠู‚ุงุช (API) ุฅู„ุฒุงู…ูŠู‘ุฉ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ู‚ุฏ ูŠูุนุฑูู‘ุถ ู…ูƒูˆู‘ู† ุงู„ูˆูŠุจ video ุงู„ุฏุงู„ุชูŠู† play()โ€Ž ูˆ pause()ุŒ ูˆู„ู„ูˆุตูˆู„ ุฅู„ู‰ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ุฅู„ุฒุงู…ูŠุฉ ู„ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ุณุชุญุชุงุฌ ุฅู„ู‰ ุงุณุชุฎุฏุงู… ู…ุฑุฌุน ู„ู„ุชูุงุนู„ ู…ุน ุนู‚ุฏุฉ DOM ู…ุจุงุดุฑุฉู‹. ุฅู† ูƒู†ุช ุชุณุชุฎุฏู… ู…ูƒูˆู‘ู†ุงุช ูˆูŠุจ ู…ู† ุทุฑู ุซุงู„ุซ ูุงู„ุญู„ ุงู„ุฃู…ุซู„ ู‡ูˆ ูƒุชุงุจุฉ ู…ูƒูˆู‘ู† React ูŠุณู„ูƒ ุณู„ูˆูƒ ุบู„ุงู ู„ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ู„ุฏูŠูƒ.

ุงู„ุฃุญุฏุงุซ ุงู„ุตุงุฏุฑุฉ ู…ู† ู‚ุจู„ ู…ูƒูˆู‘ู† ุงู„ูˆูŠุจ ู‚ุฏ ู„ุง ุชู†ุชุดุฑ ุจุดูƒู„ ุตุญูŠุญ ุนุจุฑ ุดุฌุฑุฉ ุชุตูŠูŠุฑ React. ุณุชุญุชุงุฌ ุฅู„ู‰ ุฅุฑูุงู‚ ู…ุนุงู„ุฌ ุฃุญุฏุงุซ ูŠุฏูˆูŠู‹ู‘ุง ู„ู„ุชุนุงู…ู„ ู…ุน ู‡ุฐู‡ ุงู„ุฃุญุฏุงุซ ุถู…ู† ู…ูƒูˆู‘ู†ุงุช React ู„ุฏูŠูƒ.

ุฅุญุฏู‰ ุงู„ุฃู…ูˆุฑ ุงู„ุชูŠ ู…ู† ุงู„ุดุงุฆุน ุงู„ุฎุทุฃ ุจู‡ุง ู‡ูŠ ุงุณุชุฎุฏุงู… ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ู„ู„ุฎุงุตูŠู‘ุฉ "class" ุจุฏู„ู‹ุง ู…ู† "className":

function BrickFlipbox() {
  return (
    <brick-flipbox class="demo">
      <div>ุงู„ูˆุงุฌู‡ุฉ ุงู„ุฃู…ุงู…ูŠุฉ</div>
      <div>ุงู„ูˆุงุฌู‡ุฉ ุงู„ุฎู„ููŠุฉ</div>
    </brick-flipbox>
  );
}

ุงุณุชุฎุฏุงู… React ููŠ ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ู„ุฏูŠูƒ {#using-react-in-your-web-components}

class XSearch extends HTMLElement {
  connectedCallback() {
    const mountPoint = document.createElement('span');
    this.attachShadow({ mode: 'open' }).appendChild(mountPoint);

    const name = this.getAttribute('name');
    const url = 'https://www.google.com/search?q=' + encodeURIComponent(name);
    ReactDOM.render(<a href={url}>{name}</a>, mountPoint);
  }
}
customElements.define('x-search', XSearch);

ู…ู„ุงุญุธุฉ:

ู„ู† ุชุนู…ู„ ู‡ุฐู‡ ุงู„ุดูŠูุฑุฉ ุฅู† ู†ู‚ู„ุช ุงู„ุฃุตู†ุงู ุจุงุณุชุฎุฏุงู… Babel. ุงู†ุธุฑ ุฅู„ู‰ ู‡ุฐู‡ ุงู„ู…ุดูƒู„ุฉ ู…ู† ู‡ู†ุง. ูŠุฌุจ ุนู„ูŠูƒ ุชุถู…ูŠู† custom-elements-es5-adapter ู‚ุจู„ ุชุญู…ูŠู„ ู…ูƒูˆู‘ู†ุงุช ุงู„ูˆูŠุจ ู„ุฅุตู„ุงุญ ู‡ุฐู‡ ุงู„ู…ุดูƒู„ุฉ.