@FullStackAlex
Веб-разработчик, электрик, кочевник

Vue.js + Wordpress?

Есть у кого-нибудь опыт? Возможно ли воспользоваться преимуществами одной из платформ не подавляя преимущества другой?

У меня солидный опыт с Wordpress но практического опыта с Vue.js и с MVC-Frameworks в целом нет.

На днях сколотил маленький сайт для клиента в vue.js но после npm run build понял что нужен какой то особый подход)) пришлось ночь сидеть переделывать обратно всё под php-структуру в Wordpress. То есть убрал vue.js полностью.

По ходу все Wordpress templates (header, category, footer, итп) должны выдовать json object через wp rest api?
  • Вопрос задан
  • 18705 просмотров
Решения вопроса 1
@FullStackAlex Автор вопроса
Веб-разработчик, электрик, кочевник
Наконец таки я решил все технические вопросы для внедрения Vue.js в WordPress-Workflow. Долго я к этому шёл. Трудно было совместить freelancing на основе WordPress и WooCommerce и одновременно самообучение Symfony и Vue.js и создание первых реальных проектов на их основе. Но создание первого большого проекта на основе headless Symfony 4 (JSON API) и потребителя на основе Vue.js меня хорошо продвинуло вперед в направлении внедрения Vue.js в WordPress. Почему мне так интересен WordPress/WooCommerce умея делать Backend на основе Symfony? Потому что WordPress делает доступным веб технологии и маленьким клиентам по "демократическим" ценам, при этом всё ещё позволяя фрилансеру хорошо заработать (по крайней мере в Берлине, где я проживаю).

Так как путь сюда до сих пор никем в интернете детально не описан и я угрохал недели если не месяцы на решение этой задачи прочитывая все статьи и docs с этой темой связанные (освоил для этого даже наконец таки Docker и Nginx и углубил знания в настройке Webpack) и пройдя многие не верные пути (vue-cli, nuxt.js) - я решил создать в течении следующих недель курс на Udemy.com на английском за 20 баксов. Если будет тут достаточно интереса (хотя бы лайков 10 ), то сделаю туториал и на русском. Курс будет содержать настройки Webpack, Docker (optional), Apache/Nginx. Моё решение сохраняет в отличии от nuxt.js все преимущества как WordPress так и Vue.js при этом соблюдая "законы" SEO и Social Marketing (Twitter Cards, Facebook Open Graph итп) и самое главное Hot Module Replacement с PHP/WordPress Templates!!!!!! .
Я очень разочарован Nuxt.js и расскажу в Tutorial почему он далеко не во всех случаях технически годен и почему с точки зрения open source этот проект не оптимальный исходя из моего личного опыта.

UPDATE 15.05.2019
К сожалению руки до туториала так и не дошли. Но создал Github Repo с простым Starter Theme.
Демо можно тут просмотреть: wue-theme.app
Пока без доскональной документации. Надеюсь к концу месяца создам.
Приколы темы:
-Hot Module Replacement с PHP файлами (если только это интересно можно и тут скачать Webpack config)
-полная поддержка SEO без Server Side Rendering (SSR). Реализуется это за счёт загрузки данных вместе с HTML в глобальном JS объекте "technomad", вместо дополнительного AJAX-запроса, что не поддерживается гуглом и для чего и нужны все прибамбасы типа Nuxt.js и phpv8/v8js.
-элементы меню и новости автоматически добавляются через WordPress-Backend.
-тема устонавливается как и любая другая тема без каких либо дополнительных настроек сервера (нужно скачать всю Repository и скомпремировать "wuetheme" папку в ZIP и тогда можно просто загружать как и обычную тему).
-Github Repo без данных из демонстрации. Может ещё добавлю функцию установки демо данных.
-сервер демо во Франкфурте без CDN. Так что во Владивостоке загрузка наверное немного дольше длится будет)) Из Берлина за 600-700ms загружается с VPS.
-есть ещё много над чем работать (pagination, проверка загруженны ли скрипты и стили плагинов при Ajax route change, пока они загружаются только при инициальной загрузки, но скрипты и стили могут быть на каждой странице иные) , нo даже в данном виде эта тема на сколько я знаю уникальная.
-тут можно проследить прогресс перестройки моего сайта с этой темой: stage.alexfullstack.dev, там больше клёвых анимаций))
Пока всё. Have fun :)

Update 30.05.2019
Много чего обновил на Github.

Update 02.06.2019
Я решил вчерашнюю проблему)))
Нужно было просто выспаться))
Завтра подробно опишу и обновлю Github Repo.

Update 03.06.2019
-загрузил на Github новую "bulletproof SEO" версию с "Dynamic Rendering Implementation"
-подробная статья тут

Update 14.06.2019
Перенёс сайт на wue-theme.app.
Демонстрация Github версии тут: starter.wue-theme.app
Добавил простую Load More Pagination и очистил код.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
boratsagdiev
@boratsagdiev
Чтобы совместить эти две вещи, вам не нужны шаблоны Wordpress. Как я вижу разработку с этими двумя:

- WP отдаёт в rest API нужные данные (он это умеет по умолчанию, вроде только нужно поставить плагин чтобы включить). Это ваш бэкенд.
- На VueJS вы пишете весь фронтенд - то есть вся вёрстка шаблона находится именно во vue-файлах, так же как и вся логика по получению постов, категорий, комментариев и прочего из бэкенда WP.
Ответ написан
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Можно. Но думаю стоит почитать дискуссию коллег на эту тему oddstyle.ru/wordpress-2/novosti-wordpress/itogi-di...

Я лично Vue не рассматриваю. И все кто более менее адекватны в этой теме на мой взгляд - выбирают React. Все что достойно внимания.

Vue или Angular - это выбор маргиналов. Ну и пчм то в РФ оч популярны.
Ответ написан
rshaibakov
@rshaibakov
Web-разработчик
Вы пытаетесь совместить несовместимое. Зачем Вам в качестве REST API использовать CMS? Это же извращение!
Если нужен бэкенд, берите любой известный вам язык (PHP, Python, NodeJS и тд) и пишите на нем REST API. Благо, у каждого языка есть фреймворк, где легко можно разработать свой API.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы