<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          RelayReact 數(shù)據(jù)驅(qū)動(dòng) JavaScript 框架

          聯(lián)合創(chuàng)作 · 2023-09-24 17:14

          溫馨提示:

          Relay 是構(gòu)建數(shù)據(jù)驅(qū)動(dòng) React 應(yīng)用的 JavaScript 框架。

          主要特性:

          • 聲明式:不再使用一個(gè)命令式 API 與數(shù)據(jù)存儲(chǔ)通訊。簡(jiǎn)單的使用 GraphQL 聲明你的數(shù)據(jù)需求,讓 Relay 理解如何,什么時(shí)候獲取你的數(shù)據(jù)。

          • 托管:查詢(xún)?cè)谝晥D后面,Relay 聚合查詢(xún)成有效的網(wǎng)絡(luò)請(qǐng)求,只獲取你需要的數(shù)據(jù)。

          • 轉(zhuǎn)變:Relay 允許你使用 GraphQL mutations 在客戶(hù)端和服務(wù)器端轉(zhuǎn)變數(shù)據(jù),提供自動(dòng)數(shù)據(jù)一致,優(yōu)化更新和錯(cuò)誤處理。

          簡(jiǎn)單列表:

          class Tea extends React.Component {
            render() {
              var {name, steepingTime} = this.props.tea;
              return (
                <li key={name}>
                  {name} (<em>{steepingTime} min</em>)
                </li>
              );
            }
          }
          Tea = Relay.createContainer(Tea, {
            fragments: {
              tea: () => Relay.QL`
                fragment on Tea {
                  name,
                  steepingTime,
                }
              `,
            },
          });
          class TeaStore extends React.Component {
            render() {
              return <ul>
                {this.props.store.teas.map(
                  tea => <Tea tea={tea} />
                )}
              </ul>;
            }
          }
          TeaStore = Relay.createContainer(TeaStore, {
            fragments: {
              store: () => Relay.QL`
                fragment on Store {
                  teas { ${Tea.getFragment('tea')} },
                }
              `,
            },
          });
          class TeaHomeRoute extends Relay.Route {
            static routeName = 'Home';
            static queries = {
              store: (Component) => Relay.QL`
                query TeaStoreQuery {
                  store { ${Component.getFragment('store')} },
                }
              `,
            };
          }
          ReactDOM.render(
            <Relay.RootContainer
              Component={TeaStore}
              route={new TeaHomeRoute()}
            />,
            mountNode
          );

           

          瀏覽 26
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕在线观看网站 | 久久亚洲AV成人无码电影麻豆 | 欧日韩另类黄色 | 青青自拍视频免费观看 | 国产精品五月天久久久 |