Spec-Zone.ru › Ember.js 4

Пакет ember-data-overview

<img alt="EmberData" class="project-logo" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyOCIgaGVpZ2h0PSIzMjQiIHZpZXdCb3g9IjAgMCAxMDI4IDMyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3Ni4wNDEgNDIpIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgPGcgZmlsbD0iI0UwNEUzOSI+CiAgICAgIDxwYXRoIGQ9Ik01MDcuNTUyIDEzNy4yMjlzLTEyLjU2IDkuNzQ0LTIzLjYxNiA4LjY1NmMtMTEuMDU2LTEuMDg4LTcuNTg0LTI1Ljc5Mi03LjU4NC0yNS43OTJzMi4zODQtMjIuNjU2LTQuMTI4LTI0LjU2Yy02LjQ5Ni0xLjg4OC0xNC41MTIgNS45MDQtMTQuNTEyIDUuOTA0cy05Ljk2OCAxMS4wNTYtMTQuNzM2IDI1LjE1MmwtMS4zMTIuNDMyczEuNTItMjQuNzItLjIwOC0zMC4zNTJjLTEuMjk2LTIuODE2LTEzLjIxNi0yLjU5Mi0xNS4xNjggMi4zODQtMS45NTIgNC45OTItMTEuNDg4IDM5LjY2NC0xMi4xNDQgNTQuMTkyIDAgMC0xOC42NCAxNS44MjQtMzQuODggMTguNDE2LTE2LjI1NiAyLjYwOC0yMC4xNi03LjU4NC0yMC4xNi03.N-M80jI <img alt="EmberData" class="project-logo" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyOCIgaGVpZ2h0PSIzMjQiIHZpZXdCb3g9IjAgMCAxMDI4IDMyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3Ni4wNDEgNDIpIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgPGcgZmlsbD0iI0UwNEUzOSI+CiAgICAgIDxwYXRoIGQ9Ik01MDcuNTUyIDEzNy4yMjlzLTEyLjU2IDkuNzQ0LTIzLjYxNiA4LjY1NmMtMTEuMDU2LTEuMDg4LTcuNTg0LTI1Ljc5Mi03LjU4NC0yNS43OTJzMi4zODQtMjIuNjU2LTQuMTI4LTI0LjU2Yy02LjQ5Ni0xLjg4OC0xNC41MTIgNS45MDQtMTQuNTEyIDUuOTA0cy05Ljk2OCAxMS4wNTYtMTQuNzM2IDI1LjE1MmwtMS4zMTIuNDMyczEuNTItMjQuNzItLjIwOC0zMC4zNTJjLTEuMjk2LTIuODE2LTEzLjIxNi0yLjU5Mi0xNS4xNjggMi4zODQtMS45NTIgNC45OTItMTEuNDg4IDM5LjY2NC0xMi4xNDQgNTQuMTkyIDAgMC0xOC42NCAxNS44MjQtMzQuODggMTguNDE2LTE2LjI1NiAyLjYwOC0yMC4xNi03LjU4NC0yMC4xNi03LjU4NHM0NC4yMDgtMTIuMzUyIDQyLjY4OC00Ny42OGMtMS41MDQtMzUuMzI4LTM1LjY0OC0yMi4yNTYtMzkuNTA0LTE5LjM2LTMuNzQ0IDIuODE2LTIzLjY5NiAxNC44NDgtMjkuNTIgNDguMTc2LS4xOTIgMS4xMi0uNTQ0IDYuMDgtLjU0NCA2LjA4cy0xNy4xMiAxMS40NzItMjYuNjU2IDE0LjUxMmMwIDAgMjYuNjU2LTQ0Ljg2NC01Ljg0LTY1LjIzMi05LjE0LTUuNTAyLTE3LjEwNi0uNDQtMjEuODQ1IDQuMjA4LTIuOTEgMi44NTQgMzkuMzk3LTQzLjQyNCAyOS42MzctODQuODMyQzMwMi44OC4yMzcgMjkzLjAyNC0xLjg3NSAyODMuOTg0IDEuMzI1Yy0xMy43MjggNS40MDgtMTguOTI4IDEzLjQyNC0xOC45MjggMTMuNDI0cy0xNy43NzYgMjUuNzkyLTIxLjkwNCA2NC4xNmMtNC4xMTIgMzguMzUyLTEwLjE3NiA4NC43MzYtMTAuMTc2IDg0LjczNnMtOC40NjQgOC4yNC0xNi4yNTYgOC42NzJjLTcuODA4LjQxNi00LjMzNi0yMy4yLTQuMzM2LTIzLjJzNi4wNjQtMzUuOTY4IDUuNjQ4LTQyLjA0OGMtLjQ0OC02LjA2NC0uODgtOS4zMTItOC4wMzItMTEuNDcyLTcuMTUyLTIuMTc2LTE0Ljk2IDYuOTI4LTE0Ljk2IDYuOTI4cy0yMC41NzYgMzEuMi0yMi4zMDQgMzUuOTY4bC0xLjEwNCAxLjk2OC0xLjA3Mi0xLjMxMnMxNC41MTItNDIuNDguNjU2LTQzLjEyYy0xMy44NzItLjY1Ni0yMi45NzYgMTUuMTY4LTIyLjk3NiAxNS4xNjhzLTE1LjgyNCAyNi40NDgtMTYuNDggMjkuNDcybC0xLjA3Mi0xLjI5NnM2LjQ5Ni0zMC43NjggNS4yLTM4LjM2OGMtMS4zMTItNy41ODQtOC40NDgtNi4wNjQtOC40NDgtNi4wNjRzLTkuMTA0LTEuMDg4LTExLjQ4OCA0Ljc2OGMtMi4zODQgNS44NTYtMTEuMDU2IDQ0LjY0LTEyLjE0NCA1Ni45OTIgMCAwLTIyLjc1MiAxNi4yNTYtMzcuNzEyIDE2LjQ2NC0xNC45NDQuMjI0LTEzLjQyNC05LjQ3Mi0xMy40MjQtOS40NzJzNTQuODMyLTE4Ljc2OCAzOS44NzItNTUuODI0Yy02LjcyLTkuNTM2LTE0LjUxMi0xMi41MjgtMjUuNTY4LTEyLjMyLTExLjA1Ni4yMjQtMjQuNzY4IDYuOTYtMzMuNjQ4IDI2Ljg5Ni00LjI1NiA5LjUwNC01Ljc5MiAxOC41NDQtNi42NzIgMjUuMzYgMCAwLTkuNTg0IDEuOTY4LTE0Ljc4NC0yLjM2OC01LjIxNi00LjMzNi03Ljg4OCAwLTcuODg4IDBzLTguOTI4IDExLjM5Mi0uMDQ4IDE0Ljg0OGM4Ljg5NiAzLjQ3MiAyMi43NTIgNS4wODggMjIuNzUyIDUuMDg4IDEuMjggNi4wNjQgNC45NzYgMTYuMzg0IDE1LjgwOCAyNC41OTIgMTYuMjU2IDEyLjM1MiA0Ny40NC0xLjEzNiA0Ny40NC0xLjEzNmwxMi43ODQtNy4xNjhzLjQzMiAxMS43MjggOS43NiAxMy40NGM5LjMxMiAxLjcxMiAxMy4yMTYtLjAzMiAyOS40NzItMzkuNDcyIDkuNTM2LTIwLjE2IDEwLjE5Mi0xOS4wNzIgMTAuMTkyLTE5LjA3MiAxLjA3Mi0uMjI0LTYuMjg4IDM4LjM1Mi0zLjQ3MiA0OC43NTIgMi44MTYgMTAuNDE2IDE1LjE2OCA5LjMyOCAxNS4xNjggOS4zMjhzNi43MiAxLjI5NiAxMi4xNDQtMTcuNzc2YzUuNDA4LTE5LjA3MiAxNS44MjQtNDAuMDk2IDE1LjgyNC00MC4wOTYgMS4yOCAwLTMuMjY0IDM5LjQ0IDMuNjY0IDUyLjAxNiA2Ljk0NCAxMi41NzYgMjQuOTI4IDQuMjI0IDI0LjkyOCAyLjczMiAyLjM1NiAzLjM2NC0zLjY2OCA2LjcxNy0zLjYxNCA5LjE3Ni01Ljg5NSAxMy4zMjctOC41NzQgMjUuMzYgMTMuMDA4IDQwLjkwNy0yNS4zNiAxNy43NTgtMjYuNjU2IDEwLjQ0NC0zNS45NjggMC0zNS45NjggMCAwLTEuODQ2LTIyLjc1Mi0yMi43NTIgMCAwLTE0LjQ0NS0zNS45NjggMC0zNy44Mi00LjcyMS0yOC4xNjgtMTIuNzU5LTQzLjAzOC0xMi43NTktMTIuNzA4LTE2LjE0MSAxNS4zNzYtNDAuMDk2IDE5LjA3Mi0yMC41OTJ6bS0zNS41NTIgMTQ4LjAxNnMtMi44MTYtOS41MzYgNS4yLTM2LjE5MmM4LjAzMi0yNi42NTYgMjYuODgtMTYuMjU2IDI2Ljg4LTE2LjI1NnMxMy4wMDggOS45NjggMi44MTYgMzYuNjI0Yy0xMC4xNzYgMjYuNjU2LTM0Ljg5NiAxNS44MjQtMzQuODk2IDE1LjgyNHptMTA5LjY2NC01Mi4yMjRjOC44OC0xNi4yNTYgMTUuODI0LTcuMzc2IDE1LjgyNC03LjM3NnM3LjU4NCA4LjI0LTEuMDg4IDIwLjU5MmMtOC42NzIgMTIuMzUyLTIxLjIzMiAxMS40ODgtMjEuMjMyIDExLjQ4OHMtMi4zODQtOC40NjQgNi40OTYtMjQuNzA0eiIvPgogICAgICA8cGF0aCBkPSJNNDUxLjkxOCAxODguMDI3di0zLjExMmgxLjk3NGMuMjczIDAgLjU0Ny4wMjguODM1LjA1Ny4yODguMDQzLjU2Mi4xMTUuNzkzLjIxNi4yNDUuMTAxLjQzMi4yNDUuNTc2LjQzMy4xNTkuMTg3LjIzLjQ0Ni4yMy43NjMgMCAuNzItLjIxNiAxLjE4Mi0uNjQ4IDEuMzY5LS40MzIuMTg3LS45OTQuMjc0LTEuNjcxLjI3NGgtMi4wOXptLTIuMzQ5LTQuOTQydjExLjg0M2gyLjM0OXYtNS4wNTdoMS40N2wyLjg4MSA1LjA1N2gyLjQ2NGwtMy4xNy01LjE3MmMuNDMyLS4wNDQuODM2LS4xMyAxLjIyNS0uMjYuMzc0LS4xMy43MDYtLjMxNy45OC0uNTYyLjI4OC0uMjQ1LjUwNC0uNTYyLjY2Mi0uOTUuMTczLS4zOS4yNDUtLjg1LjI0NS0xLjM5OCAwLTEuMjgyLS40MDMtMi4xOS0xLjE5Ni0yLjcwOS0uODA3LS41MzMtMS45Ni0uNzkyLTMuNDQzLS43OTJoLTQuNDY3em0tMy43NiA1LjkzNmMwLTEuMjEuMjAxLTIuMzIuNjItMy4zMjhhOC4wOSA4LjA5IDAgMCAxIDEuNy0yLjYwOCA3LjcxIDcuNzEgMCAwIDEgMi41Mi0xLjczIDcuODY0IDcuODY0IDAgMCAxIDMuMTI3LS42MTljMS4wOTUgMCAyLjEzMy4yMDIgMy4wOTguNjIuOTguNDE4IDEuODE2Ljk5NCAyLjUzNiAxLjcyOS43Mi43MzUgMS4yODIgMS41OTkgMS43MTQgMi42MDguNDE4IDEuMDA4LjYzNCAyLjExOC42MzQgMy4zMjhzLS4yMTYgMi4zMi0uNjM0IDMuMzQyYy0uNDMyIDEuMDA5LS45OTQgMS45MDItMS43MTQgMi42MzdhNy41OTQgNy41OTQgMCAwIDEtMi41MzYgMS43NDQgNy43MjUgNy43MjUgMCAwIDEtMy4wOTguNjE5IDcuODY0IDcuODY0IDAgMCAxLTMuMTI2LS42MiA3LjUzNSA3LjUzNSAwIDAgMS0yLjUyMi0xLjc0M2MtLjcyLS43MzUtMS4yODItMS42MjgtMS43LTIuNjM3LS40MTgtMS4wMjItLjYyLTIuMTMyLS42Mi0zLjM0MnptLTIuODk2IDBjMCAxLjYyOC4zMDIgMy4wODMuODkzIDQuMzguNjA1IDEuMzExIDEuMzk4IDIuNDIgMi4zOTIgMy4zNDNhMTAuNTcgMTAuNTcgMCAwIDAgMy40NzIgMi4xMTdjMS4zMTEuNDkgMi42OC43MzUgNC4xMDYuNzM1IDEuNDQxIDAgMi44MS0uMjQ1IDQuMTIxLS43MzVhMTAuNTcgMTAuNTcgMCAwIDAgMy40NzItMi4xMTdjLjk5NS0uOTIzIDEuNzg3LTIuMDMyIDIuMzkyLTMuMzQzLjU5LTEuMjk3Ljg3OS0yLjc1Mi44NzktNC4zOCAwLTEuNi0uMjg4LTMuMDU1LS44NzktNC4zNTEtLjYwNS0xLjMxMi0xLjM5Ny0yLjQyLTIuMzkyLTMuMzI5YTEwLjU3IDEwLjU3IDAgMCAwLTMuNDcyLTIuMTE4IDExLjM1NiAxMS4zNTYgMCAwIDAtNC4xMi0uNzQ5Yy0xLjQyNyAwLTIuNzk2LjI0NS00LjEwNy43NWExMC41NyAxMC41NyAwIDAgMC0zLjQ3MiAyLjExN2MtLjk5NC45MDgtMS43ODcgMi4wMTctMi4zOTIgMy4zMjktLjU5IDEuMjk2LS44OTMgMi43NTItLjg5MyA0LjM1eiIvPgogICAgICA8cGF0aCBkPSJNNDUxLjkxOCAxODguMDI3di0zLjExMmgxLjk3NGMuMjczIDAgLjU0Ny4wMjguODM1LjA1Ny4yODguMDQzLjU2Mi4xMTUuNzkzLjIxNi4yNDUuMTAxLjQzMi4yNDUuNTc2LjQzMy4xNTkuMTg3LjIzLjQ0Ni4yMy43NjMgMCAuNzItLjIxNiAxLjE4Mi0uNjQ4IDEuMzY5LS40MzIuMTg3LS45OTQuMjc0LTEuNjcxLjI3NGgtMi4wOXptLTIuMzQ5LTQuOTQydjExLjg0M2gyLjM0OXYtNS4wNTdoMS40N2wyLjg4MSA1LjA1N2gyLjQ2NGwtMy4xNy01LjE3MmMuNDMyLS4wNDQuODM2LS4xMyAxLjIyNS0uMjYuMzc0LS4xMy43MDYtLjMxNy45OC0uNTYyLjI4OC0uMjQ1LjUwNC0uNTYyLjY2Mi0uOTUuMTczLS4zOS4yNDUtLjg1LjI0NS0xLjM5OCAwLTEuMjgyLS40MDMtMi4xOS0xLjE5Ni0yLjcwOS0uODA3LS41MzMtMS45Ni0uNzkyLTMuNDQzLS43OTJoLTQuNDY3em0tMy43NiA1LjkzNmMwLTEuMjEuMjAxLTIuMzIuNjItMy4zMjhhOC4wOSA4LjA5IDAgMCAxIDEuNy0yLjYwOCA3LjcxIDcuNzEgMCAwIDEgMi41Mi0xLjczIDcuODY0IDcuODY0IDAgMCAxIDMuMTI3LS42MTljMS4wOTUgMCAyLjEzMy4yMDIgMy4wOTguNjIuOTguNDE4IDEuODE2Ljk5NCAyLjUzNiAxLjcyOS43Mi43MzUgMS4yODIgMS41OTkgMS43MTQgMi42MDguNDE4IDEuMDA4LjYzNCAyLjExOC42MzQgMy4zMjhzLS4yMTYgMi4zMi0uNjM0IDMuMzQyYy0uNDMyIDEuMDA5LS45OTQgMS45MDItMS43MTQgMi42MzdhNy41OTQgNy41OTQgMCAwIDEtMi41MzYgMS43NDQgNy43MjUgNy43MjUgMCAwIDEtMy4wOTguNjE5IDcuODY0IDcuODY0IDAgMCAxLTMuMTI2LS42MiA3LjUzNSA3LjUzNSAwIDAgMS0yLjUyMi0xLjc0M2MtLjcyLS43MzUtMS4yODItMS42MjgtMS43LTIuNjM3LS40MTgtMS4wMjItLjYyLTIuMTMyLS42Mi0zLjM0MnptLTIuODk2IDBjMCAxLjYyOC4zMDIgMy4wODMuODkzIDQuMzguNjA1IDEuMzExIDEuMzk4IDIuNDIgMi4zOTIgMy4zNDNhMTAuNTcgMTAuNTcgMCAwIDAgMy40NzIgMi4xMTdjMS4zMTEuNDkgMi42OC43MzUgNC4xMDYuNzM1IDEuNDQxIDAgMi44MS0uMjQ1IDQuMTIxLS43MzVhMTAuNTcgMTAuNTcgMCAwIDAgMy40NzItMi4xMTdjLjk5NS0uOTIzIDEuNzg3LTIuMDMyIDIuMzkyLTMuMzQzLjU5LTEuMjk3Ljg3OS0yLjc1Mi44NzktNC4zOCAwLTEuNi0uMjg4LTMuMDU1LS44NzktNC4zNTEtLjYwNS0xLjMxMi0xLjM5Ny0yLjQyLTIuMzkyLTMuMzI5YTEwLjU3IDEwLjU3IDAgMCAwLTMuNDcyLTIuMTE4IDExLjM1NiAxMS4zNTYgMCAwIDAtNC4xMi0uNzQ5Yy0xLjQyNyAwLTIuNzk2LjI0NS00LjEwNy43NWExMC41NyAxMC41NyAwIDAgMC0zLjQ3MiAyLjExN2MtLjk5NC45MDgtMS43ODcgMi4wMTctMi4zOTIgMy4zMjktLjU5IDEuMjk2LS44OTMgMi43NTItLjg5MyA0LjM1eiIvPgogICAgICA8cGF0aCBkPSJNNzY1Ljg2NyAxNzIuNzA0Yy0yLjQzIDIuMjI0LTUuNDQ5IDQuNTk4LTkuMDUzIDcuMTNhOTYuMzg4IDk2LjM4OCAwIDAgMS0xMS42NjcgNi45NyA4OC44NiA4OC44NiAwIDAgMS0xMi43OTMgNS4zMDdjLTQuMzQgMS40MTYtOC40NyAyLjEyMy0xMi4zNzIgMi4xMjMtMy41MTQgMC02LjQ1Ny0uNDktOC44Ni0xLjQ2NC0yLjM4Ny0uOTc3LTQuMzI0LTIuMzQtNS44MS00LjA5NC0xLjQ3Mi0xLjc1MS0yLjUzOC0zLjg5NS0zLjE2OS02LjQxOC0uNjQ1LTIuNTMtLjk3Ni01LjMwOC0uOTc2LTguMzQxIDAtNC4yNDUuNDgtOS4xOTggMS40MjctMTQuODYgMS45MzctMTEuNzA4IDMuMTgzLTE4LjI4MiAzLjczOS0xOS43My45MTYtMi44NzggMTIuNzYzLTY1LjQzIDE1LjUxLTc1LjMwNSAyLjU2OC04LjA1IDQuMTQ1LTEzLjI4NSA0Ljc0NS0xNS43MTUuMzMtMS43MDIgMS4yNDctMy4yMzUgMi43NzgtNC42MDJhMTguNDU3IDE4LjQ1NyAwIDAgMSA0LjcxNS0zLjAxMiAyNS42MyAyNS42MyAwIDAgMSA1LjQ2Ni0xLjczOWMxLjg3Ny0uMzc1IDMuNTg4LS41NjEgNS4xMi0uNTYxIDIuNzc4IDAgNC42NTUuNTIgNS42NiAxLjU2OS45OTIgMS4wNDQgMS40ODcgMi40NDEgMS40ODcgNC4xOTIgMCAxLjQ4NC0uMzQ1IDMuNTc4LTEuMDUgNi4yODQtLjY5MSAyLjcwOS0xLjQ3MiA1Ljc5My0yLjM1OCA5LjI1NC0uODg4IDMuNDY2LTIuMTkyIDcuOTE4LTMuOTM2IDEzLjM2LTEuNzQgNS40NC0xMi45MjYgNjYuMjYtMTMuNTU3IDcwLjA5N2ExMzYuNjM3IDEzNi42MzcgMCAwIDEtMi40MDMgMTEuNDQ2Yy0uOTc2IDMuNzg5LTEuNDU2IDcuMjMzLTEuNDU2IDEwLjMzIDAgMy4wMzIuMzMgNS40MzggMS4wMDYgNy4yMjUuNjc0IDEuNzg0IDIuMDU3IDIuNjc3IDQuMTQ0IDIuNjc3IDIuNDMzIDAgNS4xMi0uODQgOC4wOTQtMi41MjcgMi45NTgtMS42ODIgNS45Ni0zLjcyNCA4Ljk5NC02LjExN2EyMDIuMDIyIDIwMi4wMjIgMCAwIDAgOC44ODktNy40MjggMjc2LjQ4NiAyNzYuNDg2IDAgMCAxIDcuNjg2LTYuNTd2MjAuNTE5eiIgZmlsbD0iIzYxMjExNiIvPgogICAgPHBhdGggZD0iTTgwOS4xNjcgMTQ2LjI5NWMtLjI3MiAyLjE3MS0uODYgNC44ODEtMS43NzIgOC4xMzZhNTYuMjM4IDU2LjIzOCAwIDAgMS0zLjU5MSA5LjQ1N2MtMS40ODIgMy4wNTMtMy4yMzggNS42Ni01LjI2IDcuODI3LTIuMDI3IDIuMTctNC4yODQgMy4yNTgtNi43ODEgMy4yNTgtMS41NDggMC0yLjgzNC0uNDA0LTMuODQzLTEuMTk5LTEuMDEzLS43OTktMS44MjEtMS44MzctMi40MjYtMy4xMjYtLjYxLTEuMjg1LTEuMDMtMi43NDQtMS4yNjktNC4zN2EzNS42NTIgMzUuNjUyIDAgMCAxLS4zNTQtNS4wNTVjMC0yLjk0MS4zODctNi4wOCAxLjE2Mi05LjQxNi43NzUtMy4zMzcgMi4xMDUtNy4yMDUgMy45OS0xMS42MTYgMS44ODQtNC40MDQgMy44MDMtOC4xMDcgNS43Ni0xMS4xMTQgMS45NTMtMy4wMDMgNC4wOS01LjY3MiA2LjQxLTguMDA4IDIuMzI3LTIuMzM1IDQuODAzLTQuMTg5IDcuNDI2LTUuNTYgMi42MjgtMS4zNjggNS4zMTgtMi4wNTIgOC4wODEtMi4wNTJsLTcuNTMzIDMyLjgzOHptNjQuOTAzIDE0LjA0MmMuMTIzLTMuNTEtMS4yOTUtNy4wMTQtNC43ODMtOC41MzQtNC4yNzYtMS44NjYtNy43MDcuNDMyLTEwLjI0NSAzLjYxNmE1OS40NzYgNTkuNDc2IDAgMCAxLTUuMjMxIDUuNzVjLTQuMTAyIDMuOTU1LTEwLjQzNCAxMC4wNjQtMTYuNTE0IDEwLjA2NC0xLjg4NiAwLTMuMTE0LS44Ny0zLjY4Ni0yLjYwOC0uNTc0LTEuNzM4LS44NjItNC4xNTItLjg2Mi03LjIzNyAwLTMuNjA5LjU2MS04LjA1MyAxLjY2OC0xMy4zMjJsMi45NzQtMTQuMDc5Yy44NjUtNC4xMiAxLjY0LTguMTQgMi4zMTEtMTIuMDYxLjY3Mi0zLjkyMSAxLjAxNC03LjQ5MyAxLjAxNC0xMC43MTQgMC0yLjEwOS0uMTg1LTMuNzc3LS41Ni01LS4zNzEtMS4yMjgtLjg5LTIuMTc2LTEuNTY2LTIuODYtLjY3OS0uNjgtMS40NTQtMS4xMjQtMi4zMzUtMS4zM2ExMi43MjcgMTIuNzI3IDAgMCAwLTIuODQ3LS4zMDVjLS43NDUgMC0xLjUwOC4wMi0yLjI4NS4wNTQtLjc4LjAzMy0xLjU0MS4wNS0yLjI4Ny4wNS0uODc3IDAtMS43NDctLjA1LTIuNTktLjE1M2E5LjA4MiA5LjA4MiAwIDAgMS0yLjQ4OC0uNjYzYy0uODE2LS4zMzgtMS40OTItLjg4Mi0yLjAzMi0xLjYzMmEzNzIgMzcyIDAgMCAwLTEuNjgtMi4yOThjLS41NzItLjc4My0xLjMwMi0xLjQ3OS0yLjE4NC0yLjA5My0uODc2LS42MTMtMi4xLS45MTgtMy42NTctLjkxOC00LjY3NiAwLTkuMjY1Ljk4OC0xMy43NjYgMi45Ny00LjUwNiAxLjk4MS04Ljc5IDQuNjQ2LTEyLjg1NyA4LTQuMDY2IDMuMzU2LTcuODA2IDcuMjgyLTExLjIyOCAxMS43NzYtMy40MiA0LjQ5OC02LjYyNSA5LjgzMi05LjYwMiAxNi4wMDctMi45NzggNi4xNzUtNS4xODIgMTEuOTEzLTYuNjAzIDE3LjIxLTEuNDI2IDUuMzAyLTIuMTM1IDEwLjQ2Ny0yLjEzNSAxNS41IDAgNC40ODYuNzA5IDguNTEgMi4xMjIgMTIuMDc0IDEuNDEzIDMuNTY3IDMuMjk2IDYuNTkgNS42NTYgOS4wNyAyLjM1NiAyLjQ4IDUuMDY2IDQuMzgzIDguMTMxIDUuNzA2IDMuMDY1IDEuMzI2IDYuMjEyIDEuOTkgOS40NDYgMS45OSAzLjA1MSAwIDYuMTA4LS41IDkuMTYxLTEuNWE1MC43NTMgNTAuNzUzIDAgMCAwIDguODExLTMuODQ3YzIuODEyLTEuNTcgNS40MTItMy4zMTYgNy43ODktNS4yNTMgMi4zNzItMS45MzEgNC4zNzgtMy44MyA2LjAwNi01LjY5NiAyLjE3IDUuNCA0Ljc0OSA5LjUyIDcuNzQgMTIuMzQ5IDIuOTgyIDIuODM0IDYuNzEzIDQuMjQ3IDExLjE4OCA0LjI0NyAzLjcwMyAwIDcuNDA2LS45MTkgMTEuMTEzLTIuNzU2YTU0Ljg0NCA1NC44NDQgMCAwIDAgMTAuNDAxLTYuNzM5YzMuMjMzLTIuNjU3IDYuMTQ2LTUuNDUgOC43NC04LjM3OCAzLjM4Ny0zLjgyNyA3LjE4LTcuNzM2IDguOTkzLTEyLjYxM2ExMi4zNyAxMi4zNyAwIDAgMCAuNzU5LTMuODQ0ek03NTEuNjE4IDg1LjU4M2MuNTI3LS4yNSAxLjQyOC0uMzM4IDIuNjg5LS4yNjcgMS4yNjEuMDc1IDIuNzE4LjA5NiA0LjM3LjA2OSAxLjY1MS0uMDMgMy40MzYtLjA2MyA1LjM1OC0uMTA3IDEuOTA5LS4wNCAzLjc3LS4wNzIgNS41NzMtLjA5NyAxLjgwMS0uMDIxIDMuNDgzLS4wMzYgNS4wNDUtLjA1IDEuNTYxLS4wMDkgMi44NTEtLjAwNCAzLjg3NC4wMSAxLjIuMDE0IDIuMTAyLjcyMyAyLjcxNyAyLjEyNS42MDEgMS40MDMuOTYxIDMuMTk2IDEuMDgyIDUuMzc3LjExOCAyLjUyNC0uMzc2IDQuNjEzLTEuNTAyIDYuMjU5LTEuMTExIDEuNjUtMi4zODcgMi41MDctMy44MjkgMi41OGwtMzQuNTM1IDEuNzMyLTI5Ljk1Ni0xLjc1Yy0xLjgzMi0uMjEtMy4yNDMtLjQyMS00LjI1LS42MzZhMTIxLjg2NSAxMjEuODY1IDAgMCAwLTMuMi0uNjI5IDc4LjEwNyA3OC4xMDcgMCAwIDAtNC4yOTItLjYzNGMtMS43NDItLjIxNC00LjI1LS40NjctNy41MjMtLjc1My0xLjQ1Ni0uMTU0LTIuNTk3LS41My0zLjQwOC0xLjEzMS0uODExLS42LTEuNDI3LTEuMzIzLTEuODMyLTIuMTcxYTguMjcxIDguMjcxIDAgMCAxLS43NjYtMi42NzggMzYuNDQ4IDM2LjQ

Легковесная реактивная библиотека данных для JavaScript-приложений

Управляйте управлением данными вашего приложения с помощью масштабируемых шаблонов для повышения производительности разработчика.

  • ⚡️ Преданность лучшей производительности
  • 🌲 Стремление к максимальной сжатости
  • 🚀 Поддержка SSR
  • 🔜 Поддержка Typescript
  • 🐹 Создано с любовью компанией Ember
  • ⚛️ Поддерживает любые API: GraphQL JSON:API REST tRPC ...специфические или смешанные

📖 На этой странице

  • Обзор
    • Архитектура
    • Базовая установка
    • Расширенная установка
  • Настройка
    • Удаление устаревших элементов
    • Полифил для randomUUID
    • Удаление поддержки инспектора в продакшене
    • Отладка

Обзор

Ember‍Data — это легковесная реактивная библиотека данных для JavaScript-приложений, предоставляющая композируемые примитивы для упорядочивания потоков запросов/изменений/просмотра, управления сетью и кешем и сокращения данных для представления.

🪜 Архитектура

Ядром Ember‍Data является Store, которое координирует взаимодействие между вашим приложением, Cache, и источниками данных (такими как ваш API или локальный уровень персистенции). При необходимости Магазин можно настроить для гидратации данных ответа в богатые классы представления.

Ember‍Data ориентировано как на ресурсы, так и на документы при кэшировании, запросе и представлении данных. Конфигурация и использование вашего приложения определяют, что важно и когда.

Store является **координатором**. При использовании Store вы настраиваете, какой использовать кэш, как данные кэша должны быть представлены в пользовательском интерфейсе и где искать запрошенные данные, если они недоступны в кэше.

Эта координация обрабатывается независимо от характера выпущенных запросов и формата обрабатываемых данных. Такой подход обеспечивает приложениям широкую гибкость в настройке Ember‍Data в соответствии с их потребностями. Это делает Ember‍Data мощным решением для приложений любого размера и сложности.

Ember‍Data предназначен для масштабирования, с религиозным фокусом на производительности и размере ресурсов, чтобы сохранить небольшой, но быстрый размер, при этом способный обрабатывать большие сложные API в крупных приложениях на основе данных без дополнительного кода и без дополнительной сложности приложения. Его цель — предотвратить написание приложением кода для управления данными, которое трудно поддерживать и понимать.

Мощь Ember‍Data не исходит из конкретных функций, форматов данных или соответствия определенным спецификациям API, таким как JSON:API trpc или GraphQL, а из прочных соглашений относительно запроса и изменения данных, разработанных за десятилетия опыта повышения производительности разработчиков.

Базовая установка

Установите с помощью вашего менеджера пакетов JavaScript. Например, с помощью pnpm

pnpm add ember-data

ember-data устанавливается по умолчанию для новых приложений, сгенерированных с помощью ember-cli. Вы можете проверить установленную версию, посмотрев в поле devDependencies файла вашего проекта package.json.

Если вы сгенерировали новое приложение Ember с помощью ember-cli, но не хотите использовать ember-data, удалите ember-data из файла вашего проекта package.json и выполните команду установки вашего менеджера пакетов, чтобы обновить файл блокировки.

Расширенная установка

Ember‍Data организован в примитивы, которые соединяются через публичные API.

  • @ember-data/store является ядром и обрабатывает координацию
  • @ember-data/record-data — это кэш ресурсов для данных в формате JSON:API. Он интегрируется с магазином через хук createRecordDataFor
  • @ember-data/model — это уровень представления, он интегрируется с магазином через хуки instantiateRecord и teardownRecord.
  • @ember-data/adapter предоставляет различные интеграции API сети для API, построенных на основе конкретных соглашений REST или JSON:API.
  • @ember-data/serializer работает с @ember-data/adapter для нормализации и сериализации данных из и в формат API в формат JSON:API, понятный @ember-data/record-data.
  • @ember-data/debug предоставляет поддержку отладки для ember-inspector.
  • ember-data — это «мета»-пакет, который объединяет все эти пакеты для удобства.

Пакеты взаимодействуют друг с другом через хорошо определенные границы публичных API. Ядром библиотеки является магазин, предоставляемый @ember-data/store, а каждый из других библиотек подключается к магазину при установке. Поскольку эти пакеты взаимодействуют через полностью публичные API, другие библиотеки или приложения могут предоставить свои собственные реализации. Например, ember-m3 — это часто используемая реализация представления и кэша, подходящая для сложных объектов и графиков ресурсов.

Настройка

Удаление устаревших элементов

Ember‍Data позволяет пользователям включить и удалить код, предназначенный для поддержки устаревших функций.

Если ваше приложение устранило все устаревшие элементы в определенной версии, вы можете указать эту версию как версию «совместимости», чтобы удалить из приложения код, поддерживающий устаревшие функции.

let app = new EmberApp(defaults, {
 emberData: {
   compatWith: '4.8',
 },
});
  • Полная документация

Полифил для randomUUID

Ember‍Data по умолчанию использует UUID V4, чтобы генерировать идентификаторы для новых данных, созданных на клиенте. Генерация идентификаторов настраивается, но мы также для удобства используем полифил для необходимой функции, если ваша поддержка браузера или среда развертывания этого требуют. Для активации этого полифила:

let app = new EmberApp(defaults, {
 '@embroider/macros': {
   setConfig: {
     '@ember-data/store': {
       polyfillUUID: true
     },
   },
 },
});

Удаление поддержки инспектора в продакшене

Если вы не хотите включать поддержку инспектора в свое приложение в продакшене, вы можете указать, что вся поддержка должна быть удалена из сборки.

let app = new EmberApp(defaults, {
 emberData: {
   includeDataAdapterInProduction: false
 }
});
  • Полная документация

Отладка

Многие части внутренних компонентов содержат полезные инструменты логирования, которые можно активировать во время сборки. Эти инструменты всегда удаляются из продакшен-сборок или из сборок, которые не активировали их явно. Для активации установите соответствующий флаг в true.

 let app = new EmberApp(defaults, {
   emberData: {
     debug: {
         LOG_PAYLOADS: false, // data store received to update cache with
         LOG_OPERATIONS: false, // updates to cache remote state
         LOG_MUTATIONS: false, // updates to cache local state
         LOG_NOTIFICATIONS: false,
         LOG_REQUEST_STATUS: false,
         LOG_IDENTIFIERS: false,
         LOG_GRAPH: false,
         LOG_INSTANCE_CACHE: false,
     }
   }
 });

© 2022 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://api.emberjs.com/ember-data/4.9/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API