{"componentChunkName":"component---src-pages-index-js","path":"/","result":{"data":{"codeExamples":{"edges":[{"node":{"id":"a-component-using-external-plugins","code":"class MarkdownEditor extends React.Component {\n  constructor(props) {\n    super(props);\n    this.md = new Remarkable();\n    this.handleChange = this.handleChange.bind(this);\n    this.state = { value: 'Hello, **world**!' };\n  }\n\n  handleChange(e) {\n    this.setState({ value: e.target.value });\n  }\n\n  getRawMarkup() {\n    return { __html: this.md.render(this.state.value) };\n  }\n\n  render() {\n    return (\n      <div className=\"MarkdownEditor\">\n        <h3>Оролт</h3>\n        <label htmlFor=\"markdown-content\">\n          Markdown бичнэ үү.\n        </label>\n        <textarea\n          id=\"markdown-content\"\n          onChange={this.handleChange}\n          defaultValue={this.state.value}\n        />\n        <h3>Гаралт</h3>\n        <div\n          className=\"content\"\n          dangerouslySetInnerHTML={this.getRawMarkup()}\n        />\n      </div>\n    );\n  }\n}\n\nroot.render(<MarkdownEditor />);\n","mdAbsolutePath":"/vercel/path0/content/home/examples/a-component-using-external-plugins.md"}},{"node":{"id":"a-simple-component","code":"class HelloMessage extends React.Component {\n  render() {\n    return <div>Сайн уу {this.props.name}</div>;\n  }\n}\n\nroot.render(<HelloMessage name=\"Taylor\" />);\n","mdAbsolutePath":"/vercel/path0/content/home/examples/a-simple-component.md"}},{"node":{"id":"a-stateful-component","code":"class Timer extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {seconds: 0};\n  }\n\n  tick() {\n    this.setState(state => ({\n      seconds: state.seconds + 1,\n    }));\n  }\n\n  componentDidMount() {\n    this.interval = setInterval(() => this.tick(), 1000);\n  }\n\n  componentWillUnmount() {\n    clearInterval(this.interval);\n  }\n\n  render() {\n    return <div>Секунд: {this.state.seconds}</div>;\n  }\n}\n\nroot.render(<Timer />);","mdAbsolutePath":"/vercel/path0/content/home/examples/a-stateful-component.md"}},{"node":{"id":"an-application","code":"class TodoApp extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {items: [], text: ''};\n    this.handleChange = this.handleChange.bind(this);\n    this.handleSubmit = this.handleSubmit.bind(this);\n  }\n\n  render() {\n    return (\n      <div>\n        <h3>Жагсаалт</h3>\n        <TodoList items={this.state.items} />\n        <form onSubmit={this.handleSubmit}>\n          <label htmlFor=\"new-todo\">Юу хийж дуусгах ёстой вэ?</label>\n          <input\n            id=\"new-todo\"\n            onChange={this.handleChange}\n            value={this.state.text}\n          />\n          <button>Нэмэх #{this.state.items.length + 1}</button>\n        </form>\n      </div>\n    );\n  }\n\n  handleChange(e) {\n    this.setState({text: e.target.value});\n  }\n\n  handleSubmit(e) {\n    e.preventDefault();\n    if (this.state.text.length === 0) {\n      return;\n    }\n    const newItem = {\n      text: this.state.text,\n      id: Date.now(),\n    };\n    this.setState(state => ({\n      items: state.items.concat(newItem),\n      text: '',\n    }));\n  }\n}\n\nclass TodoList extends React.Component {\n  render() {\n    return (\n      <ul>\n        {this.props.items.map(item => (\n          <li key={item.id}>{item.text}</li>\n        ))}\n      </ul>\n    );\n  }\n}\n\nroot.render(<TodoApp />);\n","mdAbsolutePath":"/vercel/path0/content/home/examples/an-application.md"}}]},"examples":{"edges":[{"node":{"fileAbsolutePath":"/vercel/path0/content/home/examples/a-simple-component.md","fields":{"slug":"/home/examples/a-simple-component.html"},"frontmatter":{"title":"Энгийн Компонент","domid":"hello-example"},"html":"<p>React компонент нь <code class=\"gatsby-code-text\">render()</code> функцыг ашиглан орж ирсэн ѳгѳгдлийг харуулдаг. Энэ жишээ нь XML-адил синтакс болох JSX ашиглаж байна. Конпонентод гаднаас ѳгсѳн ѳгѳгдлийг <code class=\"gatsby-code-text\">render()</code> дотор <code class=\"gatsby-code-text\">this.props</code> ашиглан авдаг.</p>\n<p><strong>React-д заавал JSX ашиглах шаардлагагүй</strong> бѳгѳѳд <a href=\"https://babeljs.io/repl/#?presets=react&code_lz=MYewdgzgLgBApgGzgWzmWBeGAeAFgRgD4AJRBEAGhgHcQAnBAEwEJsB6AwgbgChRJY_KAEMAlmDh0YWRiGABXVOgB0AczhQAokiVQAQgE8AkowAUAcjogQUcwEpeAJTjDgUACIB5ALLK6aRklTRBQ0KCohMQk6Bx4gA\" target=\"_blank\" rel=\"noreferrer\">Babel REPL</a> ашиглан JSX хѳрвүүлэгдэн Javascript болохыг харж болно.</p>"}},{"node":{"fileAbsolutePath":"/vercel/path0/content/home/examples/a-stateful-component.md","fields":{"slug":"/home/examples/a-stateful-component.html"},"frontmatter":{"title":"Стейттэй Компонент","domid":"timer-example"},"html":"<p>Гадна талаас(<code class=\"gatsby-code-text\">this.props</code>-оор) ѳгѳгдлийг авахаас гадна, компонент ѳѳрѳѳ доторх ѳгѳгдлѳѳ удирддаг(<code class=\"gatsby-code-text\">this.state</code> ашиглaдаг). Хэрвээ компонентийн доторх ѳѳрийн ѳгѳгдѳл нь ѳѳрчлѳгдвѳл <code class=\"gatsby-code-text\">render()</code> функц дахин дуудагдан рендер хийгдсэн хэсэг шинэчлэгддэг.</p>"}},{"node":{"fileAbsolutePath":"/vercel/path0/content/home/examples/an-application.md","fields":{"slug":"/home/examples/an-application.html"},"frontmatter":{"title":"Аппликейшн","domid":"todos-example"},"html":"<p><code class=\"gatsby-code-text\">props</code> болон <code class=\"gatsby-code-text\">state</code> ашиглан жижигхэн жагсаалтын аппликейшн хийе. Энэ жишээ нь <code class=\"gatsby-code-text\">state</code> ашиглан хэрэглэгчийн оруулсан текст болон нийт жагсаалтыг хянадаг. Эвэнт үсрэхэд барьж авах хэсэг элементэд бичигдсэн ч, ажиллах үед тухайн элементээс бус, хуудсаас хайх(event-delegation) болдог.</p>"}},{"node":{"fileAbsolutePath":"/vercel/path0/content/home/examples/a-component-using-external-plugins.md","fields":{"slug":"/home/examples/a-component-using-external-plugins.html"},"frontmatter":{"title":"Нэмэлт ашигласан компонент","domid":"markdown-example"},"html":"<p>React нь бусад сан, фрэймворктой асуудалгүй зохицдог. Энэ жишээ нь <strong>remarkable</strong> гэх Markdown-ын нэмэлт сан ашиглан <code class=\"gatsby-code-text\">&lt;textarea></code> -д бичигдсэн зүйлийг шууд хѳрвүүлж байна.</p>"}}]},"marketing":{"edges":[{"node":{"frontmatter":{"title":"Declarative"},"html":"<p>React нь хэрэглэгчийн интерактив интерфейс бүтээхийг хялбарчилдаг. Aппликейшны state бүрт зориулсан энгийн бүтэц зохион байгуулахаас гадна, React нь ѳгѳгдѳл ѳѳрчлѳгдѳхѳд яг зѳв компонентоо ѳѳрчлѳн рендер хийдэг.</p>\n<p>Declarative бүтэц нь кодыг тань debug хийхэд хялбар болгохоос гадна, ажиллагаа нь илүү тодорхой болох юм.</p>"}},{"node":{"frontmatter":{"title":"Компонент-д тулгуурласан"},"html":"<p>Бие даан state-ээ удирддаг маш энгийн компонент бичиж, эдгээрийг хольж найруулан нарийн бүтэцтэй хэрэглэгчийн интерфэйс бүтээ.</p>\n<p>Компонентийн логик нь тэмплэйт-ээр бус JavaScript-ээр бичигддэг учраас ѳгѳгдлийг апп хооронд хялбар дамжуулж, DOM-оос state-ээ тусд нь байлгаж чадна.</p>"}},{"node":{"frontmatter":{"title":"Ганц удаа сур, Хаа сайгүй ашигла"},"html":"<p>Node ашиглан сервер талдаа React-ыг рендер хийж ашиглаж болдог мѳн гар утасны апп хийх бол <a href=\"https://facebook.github.io/react-native/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">React Native</a> ашиглана.</p>"}}]}},"pageContext":{}},"staticQueryHashes":[]}