Перейти к содержимому

Как сделать свой конструктор сайтов vue

  • автор:

Создание блога, управляемого CMS

Итак, вы только что запустили свой веб-сайт на Vue.js, поздравляем! Теперь вы хотите добавить блог, который быстро встраивается на ваш сайт и вы не хотите перевернуть всё вверх дном на сервере в попытке запустить WordPress (или любую другую CMS, использующую базу данных для этих целей). Вы хотите просто добавить несколько компонентов Vue.js для блога и пару маршрутов и чтобы всё это просто работало, не так ли? То что вы ищете для блога должно полностью основываться на API, чтобы вы могли использовать непосредственно из своего приложения Vue.js. Этот рецепт научит вас, как это сделать, давайте приступим!

Мы собираемся быстро создать блог на основе CMS с помощью Vue.js. Мы будем использовать ButterCMS, CMS в первую очередь ориентированную на API, которая позволяет управлять контентом с помощью панели управления ButterCMS и интегрировать API для получения контента в ваше приложение Vue.js. Вы можете использовать ButterCMS для новых или уже существующих проектов Vue.js.

Панель управления Butter

Установка

Выполните в командной строке:

npm install buttercms --save

Butter также можно подключить с помощью CDN:

script src="https://cdnjs.buttercms.com/buttercms-1.1.0.min.js"> script> 

Быстрый старт

Установите ваш токен API:

var butter = require('buttercms')('your_api_token');

С использованием ES6:

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

С использованием CDN:

script src="https://cdnjs.buttercms.com/buttercms-1.1.0.min.js"> script>
script>
var butter = Butter('your_api_token');
script>

Импортируйте этот файл в любой компонент, где вы хотите использовать ButterCMS. Затем выполните в консоли команду:

butter.post.list({page: 1, page_size: 10}).then(function(response) { 
console.log(response)
})

Запрос к API получит ваши записи блога. В вашей учётной записи уже будет одна запись в качестве примера, которую вы и увидите в ответе сервера.

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

Для отображения записей мы создадим маршрут /blog (используя Vue Router) в нашем приложении и будем получать записи блога через Butter API, аналогично будет работать маршрут /blog/:slug для работы с конкретными записями блога.

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

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
}
]
})

Затем создадим components/BlogHome.vue , который будет страницей вашего блога со списком последних записей.

script> 
import { butter } from '@/buttercms'
export default {
name: 'blog-home',
data( ) {
return {
page_title: 'Blog',
posts: []
}
},
methods: {
getPosts( ) {
butter.post.list({
page: 1,
page_size: 10
}).then(res => {
this.posts = res.data.data
})
}
},
created( ) {
this.getPosts()
}
}
script>

template>
div id="blog-home">
h1>{{ page_title }} h1>


div

v-for="(post,index) in posts"
:key="post.slug + '_' + index"
>
router-link :to="'/blog/' + post.slug">

article class="media">
figure>


img

v-if="post.featured_image"
:src="post.featured_image"
alt=""
>
img
v-else
src="http://via.placeholder.com/250x250"
alt=""
>
figure>
h2>{{ post.title }} h2>
p>{{ post.summary }} p>
article>
router-link>
div>
div>
template>

Вот как это выглядит (обратите внимание, что мы добавили CSS из https://bulma.io/ для быстрой стилизации):

buttercms-bloglist

Теперь создадим components/BlogPost.vue который будет страницей записи блога с данными по каждой из записей.

script> 
import { butter } from '@/buttercms'
export default {
name: 'blog-post',
data( ) {
return {
post: {}
}
},
methods: {
getPost( ) {
butter.post.retrieve(this.$route.params.slug)
.then(res => {
this.post = res.data
}).catch(res => {
console.log(res)
})
}
},
created( ) {
this.getPost()
}
}
script>

template>
div id="blog-post">
h1>{{ post.data.title }} h1>
h4>{{ post.data.author.first_name }} {{ post.data.author.last_name }} h4>
div v-html="post.data.body"> div>

router-link
v-if="post.meta.previous_post"
:to="/blog/ + post.meta.previous_post.slug"
class="button"
>
{{ post.meta.previous_post.title }}
router-link>
router-link
v-if="post.meta.next_post"
:to="/blog/ + post.meta.next_post.slug"
class="button"
>
{{ post.meta.next_post.title }}
router-link>
div>
template>

Вот так это будет выглядеть:

buttercms-blogdetail

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

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

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

Чтобы исправить это, нам необходимо отслеживать объект $route и вызывать getPost() при изменении маршрута.

Обновлённая секция в файле components/BlogPost.vue :

script> 
import { butter } from '@/buttercms'
export default {
name: 'blog-post',
data( ) {
return {
post: null
}
},
methods: {
getPost( ) {
butter.post.retrieve(this.$route.params.slug)
.then(res => {
// console.log(res.data)
this.post = res.data
}).catch(res => {
console.log(res)
})
}
},
watch: {
$route: {
immediate: true,
handler(to, from) {
this.getPost()
}
}
}
}
script>

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

Категории, теги и авторы

Используйте API Butter для категорий, тегов и авторов, чтобы показывать и фильтровать контент в нашем блоге.

Изучите справочник API к ButterCMS для получения дополнительной информации об этих объектах:

Вот пример перечисления всех категорий и получения записей по категории. Вызовите эти методы в хуке жизненного цикла created() :

methods: { 
// .
getCategories( ) {
butter.category.list()
.then(res => {
console.log('Список категорий:')
console.log(res.data.data)
})
},
getPostsByCategory( ) {
butter.category.retrieve('example-category', {
include: 'recent_posts'
})
.then(res => {
console.log('Записи в определённой категории:')
console.log(res)
})
}
},
created( ) {
// .
this.getCategories()
this.getPostsByCategory()
}

Альтернативные варианты

Альтернативным вариантом для рассмотрения, особенно если вы предпочитаете писать только в Markdown, будет использование что-то наподобие Nuxtent. Nuxtent позволяет вам использовать Vue Component внутри файлов Markdown. Этот подход будет похоже на подход статических сайтов (например, Jekyll), где вы создаёте свои записи блога в файлах Markdown. Nuxtent добавляет приятную интеграцию между Vue.js и Markdown, позволяя вам полностью быть в мире Vue.js.

Итоги

И это всё! Теперь у вас есть полностью функциональный блог, управляемый CMS, работающий в вашем приложении. Мы надеемся, что это руководство было полезным и сделало ваш опыт разработки на Vue.js ещё приятнее 🙂

Обнаружили ошибку или хотите добавить что-то своё в документацию? Измените эту страницу на GitHub! Опубликовано на Netlify .

Бесплатный конструктор по созданию юридических сайтов

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

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

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

Для получения доступа к конструктору выполните следующие простые действия.

В поисковой системе Яндекс внесите ключевое слово: адвокат Бондарчук Владимир Юрьевич

Перед вами откроется список поисковой выдачи Яндекса, в котором на первой позиции вы увидите мой сайт. Перейдите на него:

Вам откроется главная страница сайта:

Прокрутите главную страницу сайта немного вниз и посередине вы увидите зеленую кнопку «Создать сайт»

Нажмите на эту кнопку – она переадресует вас на промо-страницу, на которой расположена ссылка на конструктор сайтов:

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

Чтобы перейти непосредственно в сам конструктор пролистайте данную промо-страницу вниз и нажмите на кнопку «Создать свой сайт».

Готово! Вы перешли в конструктор сайтов и можете пользоваться им абсолютно бесплатно.

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

Ссылки на уроки и форму заказа услуг вы найдете внутри окна конструктора сайтов.

Всем успехов в создании и продвижении своих сайтов!

Как сделать свой конструктор сайтов vue

Добавь platform_type A Конструктор форм на сайт Vue.js без написания кода и без головной боли

Img_alt_form_builder

Если ваш веб-сайт Vue.js запущен и работает, вы преодолели первую серьезную проблему на пути к расширению присутствия своего бизнеса в интернете. поздравляю!

Но дальше идет the hard part: как entice, captivate, make и поддержать больше посетителей?

Конструктор форм to Vue.js

Добавление Конструктор форм platform_type — это tried and true метод увеличения взаимодействия с пользователем и конверсии , который часто proposed веб-профессионалами считается лучшим методом для boosting

Add Конструктор форм to Vue.js

Некоторые компании сначала take a stab at делают все своими руками (diy) Конструктор форм или имеют «computer guru», который утверждает, что он / она может построить a Конструктор форм in ‘no time’.

Другие пытаются найти приложения с открытым исходным кодом Конструктор форм или foreign companies, которые claim to предлагают Конструктор форм приложения for a bargain.

Кроме того, настройка и обновление Конструктор форм требует еще больше времени и может вызвать новые проблемы или ошибки.

По мере роста вашей компании вы, вероятно, столкнетесь с проблемами безопасности, поскольку хакеры могут попытаться использовать Конструктор форм уязвимости в системе безопасности.

По мере роста посещаемости сайта повышенная нагрузка может вызвать проблемы с отображением Конструктор форм. Нет ничего хуже, чем Конструктор форм that stops working на видном месте, как и ваш трафик balloons, goes sky high благодаря кампании thriving!

Add Конструктор форм to Vue.js

Поскольку веб-технологии advance, пользовательские и собственные Конструктор форм приложения потребуют больше времени и средств от employing вашего «веб-мастера», чтобы обновить ваш сайт и сохранить его up and running.

Вот почему большинство серьезных компаний выбирают профессиональные website Конструктор форм решения, такие как powr.

Для начала powr Конструктор форм для hosting service предлагает интуитивно понятную настройку, которая может быть выполнена без кода. Запатентованный редактор powr editor позволяет настраивать wysiwyg (то, что вы видите, то и получаете), позволяя вам делать Конструктор форм обновления в реальном времени на вашей действующей странице hosting service.

Легко настраиваемый

Каждая деталь, такая как шрифты, цвета, границы и интервалы, может modified сделать ваш бренд индивидуальным stand out.

Мобильный Отзывчивый

Дизайн автоматически адаптируется и выглядит beautiful на любом мобильном устройстве, планшете или в веб-браузере.

Кодирование не требуется

Просто скопируйте и вставьте его на свой Vue.js веб-сайт.

Support feature

Поскольку powr рассчитан на масштабирование, он имеет самые передовые встроенные средства безопасности и доступные возможности большого объема.

security feature

and to top it off, доступна служба поддержки all day every day, and so is the справочный центр .

Кроме того, наша команда опытных инженеров работает круглосуточно, чтобы приложения powr, такие как ваш Vue.js Конструктор форм, работали на вас.

Встраивание приложения Конструктор форм на ваш сайт Vue.js никогда не было проще

Создайте свое собственное приложение Конструктор форм Vue.js, подберите стиль и цвета своего веб-сайта и добавьте Конструктор форм на свою страницу Vue.js, пост, боковую панель, нижний колонтитул или где угодно на своем сайт.

Конструктор формКонструктор форм

most importantly, powr Конструктор форм имеет well-documented результатов. тематические исследования показали, что конверсии от powr Конструктор форм до maximize превышают 30%!

Доверие миллионов

Мы обеспечиваем качество, о чем свидетельствуют более 12 387 отзывов.

1200348

Установок a Конструктор форм

8230145

ПЛАГИНЫ НА САЙТАХ

Globe

4 stars

Просто

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

Пасар Сегар | Свежий рынок в Form Builder

4 stars

Это приложение было бесшовным

Это помогло мне привлечь трафик на мой сайт и привлечь больше платформ! я очень рекомендую всем!

4 stars

Это приложение было бесшовным

Я был удивлен, что shopify не имеет встроенной функции для чего-то подобного, но рад, что ваше приложение отвечает всем требованиям.

Если вы все еще have questions, то take a look at то, что есть у rbia shades, компании по производству солнцезащитных очков, designs ручной работы в деревянных рамах, seen in their business.

Add Конструктор форм to Vue.js

За a small amount of time подписку с помощью всплывающего окна powr они смогли boost расширить свои контакты более чем на 250% (более 600 реальных контактов) и steadily расширили свои социальные сети до более 6000 подписчиков, использующих powr social кормить на их сайте. они added powr slider как визуальный способ быстро показать своим клиентам, поскольку они являются landing on домашней страницей, как продукты выглядят в реальной жизни. он хорошо демонстрирует их продукты и беспрепятственно дает клиентам отличный опыт работы на месте. фактически они discovered, что посетители, которые взаимодействовали с приложениями powr на их сайте, были вовлечены в 2,5 раза дольше, чем любой другой человек на их сайте.

Через несколько месяцев после getting своего бизнеса на местных ярмарках и ремесленных выставках rbia shades искала способ продавать товары в интернете. они required the ability, чтобы показать посетителям качество своего продукта, свой легкий и эргономичный дизайн в привлекательной визуальной форме. их hosting service не предоставили для этого адекватного решения. они попробовали different third-party apps, прежде чем нашли powr slider, и ни один из них не выглядел как часть сайта, был неуклюжим и трудным в использовании.

Как реализовать конструктор сайтов?

Есть набор кастомных компонентов на Vue.js.
Предварительно есть конструктор (Grapesjs), который будет использоваться (вроде из коробки не поддерживает Vue компоненты).

Задача: Реализовать конструктор сайтов, используя кастомные компоненты.

  • Использую Vue и в нем сам конструктор Grapesjs
  • Будет бэк на Nest.js(Node.js)
  • И тут самый большой пробел в знаниях: как билдить собранные в конструкторе сайты, как передавать туда информацию(API)?

Как я это представляю:
Есть Nuxt.js, в который приходит команда на сборку очередного сайта с какими-то данными из конструктора.
Или Nuxt сам чекает API и собирает сайты при обнаружении новых данных из конструктора.

  • Как подружить Grapesjs с Vue компонентами
  • Придется хранить кастомные компоненты в 2-х местах одновременно? (в проекте Vue с конструктором и в Nuxt) Или есть более простой и правильный способ?
  • Может я совсем всё усложнил?
  • Вопрос задан более двух лет назад
  • 506 просмотров

1 комментарий

Средний 1 комментарий

hahenty

Будет даже сложнее, чем думается. Grapesjs работает с чистым html, кастомные блоки должны отображаться и парситься из сохраненного html с атрибутами. Вот в этих атрибутах можно будет установить какую-то связь с компонентами из хранилища компонентов.
С другой стороны, если Vue сумеет обрабатывать свои сырые компоненты на лету, то есть, при добавлении кастомного блока Vue сможет распарсить и включить их в работу, то нужно будет перехватывать сохранение в тегах для Vue, ну и парсер кастомных блоков соответствующий.
Подключение скриптов можно описать также в инициализации блоков и компонентов.

Решения вопроса 0
Ответы на вопрос 1

evgensenin

Evgeniy S @evgensenin
Yii2 || Laravel, vue & nuxt

Привет!
GrapesJS крутой конструктор и от наших! Желаю ему процветания и развития!

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

как связать с Vue —
подключить в проект Грейпа Vue-фреймворк,
подключить через кастомные блоки vue.js компоненты и сами js файлы
и тогда VUE увидя в разметке свои компоненты (например, ) на лету скомпилирует в HTML со всей реактивностью.

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

я так понимаю лучше всего хранить эти сконструированные html странички в базе и доставать их оттуда через API

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara11.ru/