sim3x: Пожалуйста, обратите внимание на мой пост выше, то увидите ссылку с тестами + замерами производительности. P.S. так же по ссылке можно запустить самостоятельно тесты с разными параметрами.
vasIvas: Спасибо. Я Вот тоже с коллегой сейчас обсуждал этот вопрос. В итоге от SVG мы отказались полностью по причине его производительности (P.S. зато он прост в реализации черт-возьми).
Далее остается HTML и CANVAS:
canavas - быстрый, но сложнее реализовывать.
html - "практически" тоже не уступает в производительности от canvas (Замеры производительности), но тут единственный минус, что связи требуется прорисовывать на canvas или svg, тем самым получая мини зоопарчик в котором теряется производительность (svg) или сложность реализации (canvas).
Большое спасибо Вам за отзывчивость!
Сделал я стабильные пакеты во всех зависимостях и при этом указал конкретную версию.
Не работает ((
"minimum-stability": "stable" - везде.
Problem 1
- Installation request for test/catalog 1.0.0 -> satisfiable by test/catalog[1.0.0].
- test/catalog 1.0.0 requires test/core 1.0.0 -> no matching package found.
Что касается функции shallowCompare, то я использую только в компонентах, а не в контейнере, куда входят компоненты. А так в целом react-pure-render понравился, но опять же надо тестить....
Спасибо!
Спасибо за ответ! Поясню: на ряду с компонентом List есть компонент пагинации. Когда бежим по страницам, хочу обновлять только компонент List, а при этом не трогая компонент Фильтры и не проверять shouldComponentUpdate
К сожалению, URLSearchParams и метод getAll() мало где поддерживается. Есть ли более менее достойные пакеты, которые эмулируют работу URLSearchParams и FormData ?
А так по мне:
1) таблица приходов денег за заказ (фактически это историчность)
2) таблица текущий счет (при поступление или списание денежных средств мы тупо делаем UPDATE одной строки)
P.S. возможно, я что-то не так понял.
Александр Марченко: К сожалению, так не работает:
var name = 'Outsourcing';
require.ensure([name], require => {
var s = require(name);
});
Идут варнинги:
Critical dependencies:
22:4-11 require function is used in a way in which dependencies cannot be statically extracted
@ ./modules/Api/resources/assets/frontend/app/index.js 22:4-11
WARNING in ./modules/Api/resources/assets/frontend/app ^\.\/.*$
Module not found: Error: a dependency to an entry point is not allowed
@ ./modules/Api/resources/assets/frontend/app ^\.\/.*$
WARNING in ./modules/Api/resources/assets/frontend/app ^\.\/.*$
Module not found: Error: a dependency to an entry point is not allowed
@ ./modules/Api/resources/assets/frontend/app ^\.\/.*$
И в браузере:
Api.js:119 Uncaught TypeError: __webpack_require__(...).ensure is not a function
Если открыть режим разработчика в браузере, обратить внимание на
var map = {
"./actions/CommonActions": 2,
"./actions/CommonActions.js": 2,
"./components/About": 4,
.......
}
То все пути он построил относительно от модуля Api.
А вот если сделать вот так:
webpack.config:
alias [dir : path.resolve(__dirname)]
api.js:
var rec = require.context('dir/modules', true, /\/resources\/assets\/frontend\/app\/require\.js/);
rec(`./${name}/resources/assets/frontend/app/require.js`).default(function(require){
console.log(require);
});
и взглянуть на скомпелированный api.js
var map = {
"./Outsourcing/resources/assets/frontend/app/require.js": 2
};
То, вот так работает и подтягивается.
Разумеется в require.js уже расположена конструкция:
require.ensure([], require => {
require('./index');
});