Рубрики
Без рубрики

Как построить серверу промонтировать приложение CMS-Powered Vue.js

Джейк Луметта, как построить серверу Serverless CMS Vue.js ApplicationPhoto by 贝莉儿 ung на unsplashvue.js становится много любви и взрываться в популярности по причинам. Как постепенно приемлемая структура, это легкий, реактивный и компонентный и компонентный, позволяющий создавать подключаемые компоненты. вы можете

Джейк Луметта

Vue.js становится много любви и взорвании популярности на поурок. Как постепенно приемлемая структура, это легкое, реактивное и компонент, что позволяет вам создавать подключаемые компоненты, которые вы можете добавить в любой проект.

Прогрессивные рамки Vue.js хорошо подходят для архитектурной архитектуры без прослушивания. Разработчики все чаще превращаются в архитектуру без серверов, потому что Severless позволяет им более быстро создавать и точную настройку продуктов, не перенести бремя (серверное обслуживание, отключение и масштабирование узких мест) традиционной серверной архитектуры.

Vue.js и его Hallmark Incremental приемлемость позволяет вам попробовать Vue, не поддавая существующую базу кода в опасности.

В этой статье вы узнаете, как построить серверу Merserless Vue.js Приложение с использованием ButterCMS. Buttercms – это Безголовый CMS и Blogging платформа Это позволяет создавать приложения CMS-Powered, используя любой язык программирования. Этот учебник покажет вам, как добавить Performant Content API на ваше приложение Vue.js. Эти API легко ориентироваться даже для нетехнических членов вашей команды, что позволяет вам наслаждаться Agile Management Content Management, без необходимости раскрутиться и поддерживать собственную инфраструктуру CMS.

В частности, мы покроем три случая использования: маркетинговые страницы, блоги и базы знаний с образцами кода. Готовый код для этого руководства доступен на Github Отказ

Начиная

Сначала установите ButterCMS JS SDK. Мы будем использовать это, чтобы запросить контент API.

NPM устанавливает Buttercms – сохранить

После установки вы можете следить за руководством ниже для создания трех типов контента: маркетинговые страницы, блоги и базы знаний (например, FAQ).

Добавить маркетинговые страницы

Допустим, вы хотите позволить не техническому человеку в вашей команде добавить страницы исследования случаев клиентов на ваш маркетинговый сайт. Чтобы сделать это, мы создадим страницу исследования случая в качестве примера. Используя приборную панель на ButterCMS, вы можете создать «Тип страницы» с названием «Customer Cate Counter» и определите поля.

Как только вы сделали это, вы можете создать свою первую страницу. Укажите имя и URL страницы с помощью приборной панели масла и заполните содержание страницы. Как только все это сделано, API ButterCMS вернет вашу определенную страницу в формате JSON. Это должно выглядеть что-то вроде этого:

{ "data": {   "slug": "acme-co",   "fields": {     "facebook_open_graph_title": "Acme Co loves ButterCMS",     "seo_title": "Acme Co Customer Case Study",     "headline": "Acme Co saved 200% on Anvil costs with ButterCMS",     "testimonial": "

We've been able to make anvils faster than ever before! — Chief Anvil Maker

\r\n

\"\"

", "customer_logo": "https://cdn.buttercms.com/c8oSTGcwQDC5I58km5WV", } }}

Далее откройте редактор кода и создайте файл под названием buttercms.js В вашем /SRC каталог.

Если у вас нет существующего проекта, создайте один, введя следующие:

vue init webpack buttercms-projectcd buttercms-projectnpm inpm i -S buttercmsnpm run dev

потом , в src/buttercms.js :

import Butter from 'buttercms';
const butter = Butter('your_api_token');

Теперь обновите маршруты в вашем приложении. Доступ Маршрутизатор/index.js а также

import Vue from 'vue'import Router from 'vue-router'import CustomersHome from '@/components/CustomersHome'import CustomerPage from '@/components/CustomerPage'
Vue.use(Router)
export default new Router({  mode: 'history',  routes: [      {        path: '/customers/',        name: 'customers-home',        component: CustomersHome      },      {        path: '/customers/:slug',        name: 'customer-page',        component: CustomerPage      }    ]  })

Теперь, чтобы настроить страницу «клиентов», чтобы перечислить всех ваших клиентов, мы собираемся определить GetPages () Способ получения всех страниц клиентов. В Компоненты/Combersenthome.Vue Файл, мы добавляем следующее:

Показать результаты:

Теперь мы собираемся настроить страницу клиента для просмотра одного клиента. Сделать это, в Компоненты/CustomerPage.vue. Мы определяем GetPage () Способ получения конкретной страницы клиента на основе его слизняка:

Когда вы отображаете результат, вы должны получить:

Успех! Теперь вы можете перейти на страницу клиента, которую вы создали на приборной панели с маслом через список всех страниц клиентов или напрямую через URL.

Добавить базу знаний

Учебник ниже приведет вас к созданию базы знаний для вашего приложения Vue.js. Мы будем использовать поля ButterCMS «Содержание» для этого. Содержимые поля – это просто глобальные кусочки контента, которые могут управляться вашей командой. Этот контент может охватывать несколько страниц, и каждое поле Content имеет уникальный идентификатор, который можно запросить, как вы увидите ниже.

Настройка содержимого поля

Во-первых, вам нужно настроить некоторые пользовательские поля контента. Используя приборную панель, вы можете настроить рабочую область для организации полей содержимого. Рабочие пространства позволят редакторам контента ледили контент, не влияя на разработку или API.

Как только вы находитесь в рабочей области, нажмите кнопку, чтобы создать новое поле контента. Выберите тип «Объект» и назовите поле «FAQ заголовок». У него будет лать API «FAQ_HEADLINE».

После сохранения добавьте другое поле – но на этот раз выберите тип «Коллекция» и назовите полевые задачи FAQ. У него будет слизня API «FAQ_ITEMS». На следующем экране установите два свойства для предметов в коллекции. Теперь вернитесь к своему рабочему пространству и обновите свое заголовок и добавьте некоторые товары FAQ.

Интеграция вашего приложения

Теперь, когда вы создали динамический контент, пришло время отображать динамический контент в вашем приложении. Для этого вы получите поля с вызовом API и ссылаетесь на их по вашему мнению. Во-первых, настройте маршрут на страницу FAQ:

Мы добавим FAQ маршруты в Маршрутизатор/index.js. :

import Vue from 'vue'import Router from 'vue-router'
import FAQ from '@/components/FAQ'
Vue.use(Router)
export default new Router({  mode: 'history',  routes: [    {      path: '/faq',      name: 'faq',      component: FAQ    }  ]})

Тогда создайте Компоненты/FAQ.Vue с вызовом, чтобы получить FAQ от API:

Обратите внимание, что мы предопределены Page_title Как «FAQ», а затем обновил его с помощью вызова API для «Часто задаваемых вопросов».

Ваш отображенный результат должен выглядеть так:

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

Двигатель блога

Последнее, мы рассмотрим добавление блога двигателя. Вы можете быстро создать блог CMS-Powered с помощью Vue.js.

Отображение сообщений

Мы начнем, создав маршрут блога, используя Vue-маршрутизатор Отказ Для отображения сообщений мы создаем простой /Блог Маршрут в нашем приложении и в блоге Fetch, а также /блог/: слизняки Маршрут для обработки отдельных постов.

В Маршрутизатор/index.js :

import Vue from 'vue'import Router from 'vue-router'import BlogHome from '@/components/BlogHome'import BlogPost from '@/components/BlogPost'
Vue.use(Router)
export default new Router({  mode: 'history',  routes: [    {      path: '/blog/',      name: 'blog-home',      component: BlogHome    },    {      path: '/blog/:slug',      name: 'blog-post',      component: BlogPost    }  ]})

Чтобы создать домашнюю страницу в блоге, которые отобразит ваши самые последние сообщения, вы создадите Компоненты/Bloghome.Vue. :

Вам необходимо отобразить содержимое, определив шаблон и вызова поля в одном компонентном файле:

// Create v-for and apply a key for Vue. Example is using a combination of the slug and index
    
// Bind results using a ':' 
// Use a v-if/else if their is a featured_image 
                                        

{{ post.title }}

{{ post.summary }}

Далее, создайте Компоненты/blogpost.vue Какой будет ваша страница поста для блога, чтобы перечислить один пост.

Теперь вам нужно определить шаблон и позвонить в поля содержимого в блоге:

          {{ post.meta.previous_post.title }}              {{ post.meta.next_post.title }}      

На данный момент ваше приложение вытягивает все сообщения в блоге, что позволяет вам перейти на отдельные сообщения. Но вы заметите следующие/предыдущие кнопки не работают. Почему? При использовании маршрутов с Пармы , когда пользователь навигается от /блог/foo к /блог/бар тот же экземпляр компонента будет повторно использован.

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

Есть исправление для этого. Нам нужно смотреть $ маршрут Объект и звонок GetPost () когда маршрут меняется. Для этого вам нужно обновить раздел сценария в компоненты/Blogpost.vue.vue.vue. :

На данный момент ваше приложение имеет рабочий блог, который можно легко обновлять от приборной панели CMS.

Вы также можете использовать API для фильтрации и функции содержимого в своем блоге с категориями, тегами и авторами. На самом деле, есть много, что вы можете сделать с API с точки зрения управления различными аспектами вашего блога, включая RSS, Atom, Atom и Markup и Citemap и Styling Content Via CSS.

Заворачивать

Поздравляю! Вы построили приложение Serverless Vue.js с API-исполнителю контента. Ваша команда по разработке может вернуться к кодированию, а не технические члены вашей команды теперь имеют простой способ управлять контентом, не попадая в сорняки кодирования. И вы создали отзывчивое приложение, которое будет беспрепятственно принимать изменения на ваш сайт.

Оригинал: “https://www.freecodecamp.org/news/how-to-build-a-serverless-cms-powered-vue-js-application-ee17f5957538/”