Можно попробовать отрисовать на канвасе это дело, вот к примеру либа: https://stanko.github.io/html-canvas-video-player/
Там как раз в самом последнем блоке пример, если iphone, то делаем фолбек на канвасе, если нет - то html5 video
Конкретно для этой страницы Angular 1, т.к. у рутового компонента есть директива ng-app. Ну тут я так понимаю есть какая-то сложная логика для построения такого приложения. А на обычных страницах просто jquery судя по сорсам.
Дак вы в самом RegisterModal.vue явно пропишите импорты, то что вы прописали импорт jquery в main.js, дак он только и будет виден в области видимости этого файла:
У vue2 насколько я знаю есть SSR, только вам все равно нужен будет front-end сервер в виде ноды для этого, но php насколько я знаю тоже может работать с JS через либу v8php или как-то так. https://vuejs.org/v2/guide/ssr.html
React это не фреймворк, а лишь либа для view
1. Никто не запрещает использовать lodash\underscore для работы с данными. Для фильтрации\поиска используйте селекторы.
2. Используйте webpack для сборки проекта, в настоящее время это единственное рабочее решение, так же в webpack есть асинхронная загрузка модулей - require.ensure, так что вы спокойно можете разбивать свое приложение на чанки и подгружать их в нужный момент.
3. По-моему сейчас очень, очень много плагинов адаптированных под реакт, за не большую практику работы с этим стеком у меня ни разу не возникло необходимости писать что-то самому с 0, всегда можно найти какое-то решение, форкнуть и допилить под себя.
По поводу backbone, честно не знаю - на мой взгляд React более лаконичен и на нем можно быстрее начать писать уже готовое приложение + при правильной архитектуре проекта поддержка в будущем будет без боли.
Скорее всего search-form более универсальный блок - который используется много где, поэтому для него нет смысла создавать кучу модификаторов. В данном случае search-form используется так сказать в "контексте" header'a, поэтому в этом случае логично сделать микс чтобы добавить какие-то стили которые нужны только для формы в header'e. Но если у вас search-form используется в 1-2 местах, тогда возможно имеет смысл просто добавить модификатор для этого блока. Но думайте наперед немного, возможно он где-то потом ещё понадобится.
Дак babel как раз нужен чтобы компилировать код только в es5, т.е. вы пишете на es6 -> получаете код работающий везде. По поводу если вы хотите видеть код для отладки тогда используйте source-map. В webpack конфиге укажите: devtool: 'source-map',
Дак а в чем проблема? Заведите папку components, разбивайте ваше приложение на логические блоки к примеру
App -> Header + Content + Footer
Соот-но будет след-я структура
-components
--header
---index.js
---header.css
--content
---index.js
---content.css
Так же ещё важно различать умные и тупые компоненты: "dumb and smart components" можете поискать в интернете про это.
По поводу сборки - если вы используете webpack, то gulp для склейки файлов не нужен - webpack это должен делать, и ещё если вы используете babel для трансляции, то jsx формат можно убрать и оставить просто js.
События не отпишутся, т.к. страница же продолжает существовать - перезагрузки не было, вы просто удалили файл. Так что можете продумать ещё раз архитектуру, либо придумать как отписываться от всех ивентов. Можете задать массив всех событий и когда отключаете что-то проходить по этому массиву и отписываться.
Такой подход возможен для инкапсуляции чего-то, мб для запуска какого-то логера или ещё чего подобного.
1. Ничего не становится, вызывается инстанс - отрабатывает так же как и с присваиванием, удаляется в случае не использования.
2. А что с ними должно происходить? К ним так же можно обратиться внутри класса
Я бы посоветовал react.js со всей его экосистемой котороя вокруг него крутится. Выберите стек к примеру я использую связку react-redux-react-router, + различные модули для этих библиотек. При правильной архитектуре проекта можно легко разрабатывать при этом писав не так много кода. Так же есть много хороших уроков по react.js, redux на том же egghead.io, в частности от создателя redux'a Дена Абрамова.