рд╣рдо Nuxt.js, GraphQL, Strapi рдФрд░ рд╕реНрдЯреНрд░рд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд╛рджреНрдп рд╡рд┐рддрд░рдг рд╕реЗрд╡рд╛ рдХрд╛ рдПрдХ рдХреНрд▓реЛрди рдмрдирд╛рддреЗ рд╣реИрдВред рднрд╛рдЧ 1/7

рдЫрд╡рд┐

рдЖрдзреБрдирд┐рдХ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд╛рджреНрдп рд╡рд┐рддрд░рдг рд╕реЗрд╡рд╛ рджреЗрдиреЗ рдХрд╛ рдПрдХ рдХреНрд▓реЛрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдЗрдП : Nuxt.js , GraphQL , Strapi рдФрд░ Stripe !

рдЪреЗрдХрдЖрдЙрдЯ рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рд╕реЗ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирдП рд░реЗрд╕реНрддрд░рд╛рдВ, рд╡реНрдпрдВрдЬрди рдЦреЛрдЬрдиреЗ рдФрд░ рдЕрдкрдирд╛ рдкрд╕рдВрджреАрджрд╛ рднреЛрдЬрди рдЪреБрдирдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдВрдЧреЗред

рдиреАрдЪреЗ рдЕрдВрддрд┐рдо рдбреЗрдореЛ рдЖрдкрдХреЛ рднреВрдЦрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП :)

рдЫрд╡рд┐

рдкрд░рд┐рдЪрдп


Nuxt.js, Vue.js. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рд╣реИред рд▓реЙрдиреНрдЪ-рддреИрдпрд╛рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛, рдпрд╣ рд╡реЗрдмрдкреИрдХ рдФрд░ рдмреИрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрдЪреНрдЫреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

GueHub рдкрд░ 100K рд╕реЗ рдЕрдзрд┐рдХ рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде Vue.js рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд░рдВрдЯ-рдПрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред 2014 рдореЗрдВ рдЗрд╡рд╛рди рдпреВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛, Vue.js рдЬрд▓реНрджреА рд╕реЗ рддреАрди рдореБрдЦреНрдп рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмреАрдЪ рдиреЗрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЧрдпрд╛: рд╕рд░рд▓ рдПрдкреАрдЖрдИ, рдЫреЛрдЯреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдХрд╛рд░ рдФрд░ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рдиред

REST рд╕рднреА рдореМрдЬреВрджрд╛ API рдХрд╛ 99% рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред SOAP рдХреА рдмрджреМрд▓рдд, REST рдЕрдкрдиреА рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг рддреЗрдЬрд╝реА рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдмрди рдЧрдпрд╛ред

2015 рдореЗрдВ, рдлреЗрд╕рдмреБрдХ рдиреЗ рдЧреНрд░рд╛рдлрдХрд╛рд░реНрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛- рдПрдкреАрдЖрдИ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛, рдпрд╣ рдмрдврд╝рддреА рд░рд╣рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ GitHub, Twitter рдФрд░ Yelp рдЬреИрд╕реА рдХрдВрдкрдирд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдЯреНрд░реИрдкреА рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд╣реЗрдбрд▓реЗрд╕ рд╕реАрдПрдордПрд╕ рд╣реИ рдЬреЛ рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред

рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдкреНрд▓рдЧрдЗрди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде, рд╕реНрдЯреНрд░реИрдкреА рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг, рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдмрдВрдзрди, рдПрдкреАрдЖрдИ рдкреАрдврд╝реА, рдЖрджрд┐ред

рд╕реНрдЯреНрд░реИрдкреА 100% рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ ( GitHub рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ ), рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ:

  • рд╕реНрдЯреНрд░реИрдкреА рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдлреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред
  • рдЖрдк рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдЯреНрд░реИрдкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдбреЗрдЯрд╛ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЦреЛрдП рдмрд┐рдирд╛ред
  • рдкреНрд▓рдЧрдЗрди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рдзрдиреНрдпрд╡рд╛рджред

рд╕реНрдЯреНрд░рд╛рдЗрдк рдПрдХ рдСрдирд▓рд╛рдЗрди рднреБрдЧрддрд╛рди рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рднреБрдЧрддрд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдСрд░реНрдбрд░ рдкреНрд▓реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ!

рдиреЛрдЯ: рд▓реЗрдЦреЛрдВ рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

Nuxt рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ vue cli рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ Nuxt.js рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЪрд▓реЛ @ vue / cli рдбрд╛рд▓рддреЗ рд╣реИрдВ рдпрджрд┐ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

yarn global add @vue/cli  
# 
npm install -g @vue/cli  

рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ deliveroo-clone-tutorial:

mkdir deliveroo-clone-tutorial

рдлрд┐рд░ рдЙрд╕ рдкрд░ рдЬрд╛рдПрдВ:

cd deliveroo-clone-tutorial

рдЕрдЧрд▓рд╛, рдПрдХ Nuxt.js рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ frontend:

yarn create nuxt-app frontend  
# 
npx create-nuxt-app frontend  
# 
npm init nuxt-app frontend

рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛рд░реНрди рдЪреБрдирдХрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрддреНрддрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:

? Choose the package manager: Yarn

рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдВрдЯрд░ рджрдмрд╛рдПрдВред

рд╣рдо рднреА рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ:

cd frontend && yarn dev 

рдареАрдХ! рдЪрд▓реЛ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдЦреЛрд▓реЗрдВ : 3000 рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖред

UIkit рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


UIkit рддреЗрдЬ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓рд░, рд╣рд▓реНрдХреЗ рд╕реАрдПрд╕рдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред

рд╣рдо рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ uikit рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ frontend:

yarn add uikit 

рдЕрдм рд╣рдореЗрдВ Nuxt рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ uikit рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗред

рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ /frontend/plugins/uikit.jsрдФрд░ рдЙрд╕рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВ:

import Vue from 'vue'

import UIkit from 'uikit/dist/js/uikit-core'  
import Icons from 'uikit/dist/js/uikit-icons'

UIkit.use(Icons)  
UIkit.container = '#__nuxt'

Vue.prototype.$uikit = UIkit

рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдлрд╛рдЗрд▓ рдХреЛ nuxt.config.jsрдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:

...
css: [  
  "uikit/dist/css/uikit.min.css",
  "uikit/dist/css/uikit.css",
],

/*
**      
*/
plugins: [  
  { src: '~/plugins/uikit.js', ssr: false }
],
...


рдареАрдХ! UIkit рддреИрдпрд╛рд░ рд╣реИ!

рдЕрдм рдкрд╣рд▓рд╛ рдХрдВрдкреЛрдиреЗрдВрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред

рдПрдХ рд╣реЗрдбрд░ рдШрдЯрдХ рдмрдирд╛рдПрдБ


рдШрдЯрдХ Header.vueрдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдШрдЯрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ

рдПрдХ Header.vueрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ/frontend/components/

<template>  
  <client-only>
    <nav class="uk-navbar-container" uk-navbar>
        <div class="uk-navbar-left">
            <ul class="uk-navbar-nav">
              <li class="uk-active">
                <router-link tag="a" class="navbar-brand" to="/" exact>Deliveroo clone</router-link>
              </li>
              <li>
                <router-link tag="a" class="navbar-brand" to="/restaurants" exact>Restaurants</router-link>
              </li>
            </ul>
        </div>
    </nav>
  </client-only>
</template>

рдПрдХ рдШрдЯрдХ layouts/default.vueрдЖрдкрдХреЗ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреА рдЬрдбрд╝ рд╣реИред рдЗрд╕рдХреЗ рдЕрдВрджрд░ рд╣рдорд╛рд░реЗ <nuxt /> рдПрдкреНрд▓реАрдХреЗрд╢рди рдирд┐рд╣рд┐рдд рд╣реИред (рд╡реЗ рдкреГрд╖реНрда рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ)

рдЕрдЧрд▓рд╛, рдЙрд╕ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ Header.vueрдЖрдкрдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдФрд░ рдЙрд╕ рдХрдВрдЯреЗрдирд░ рдХреЛ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдХреЙрдкреА рдФрд░ рдмрджрд▓реЗрдВ /frontend/layouts/default.vue:

<template>  
  <div>
    <Header />
    <div class="uk-section uk-section-default">
      <div class="uk-container uk-container-large">
        <nuxt />
      </div>
    </div>
  </div>
</template>

<script>  
import Header from '~/components/Header.vue'  
export default {  
  components: {
    Header
  }
}
</script>

рдЕрдм рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдиреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЛ /frontend/pages/index.vueрдмрджрд▓рддреЗ рд╣реИрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд╛рдордЧреНрд░реА рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ:

<template>  
  <div>
    <img src="https://media.giphy.com/media/zBL9j9oiR3VM4/giphy.gif" class="uk-position-center" alt="">
  </div>
</template>  

рдЕрдм рд╣рдо рдореБрдЦреНрдп рдкреГрд╖реНрда (index.vue) рдкрд░ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ layouts/default.vueрдФрд░ рдЬрд╣рд╛рдВ рдШрдЯрдХ рднреА рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИHeader.vue

  • рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ : 3000
  • рдпрджрд┐ рдЖрдкрдиреЗ рдХрдорд╛рдВрдб рдХреЛ рдкрд╣рд▓реЗ рд░реЛрдХрд╛ рдерд╛ рддреЛ рдпрд╛рд░реНрди рдпрд╛рд░реНрди рдпрд╛ npm рд░рди рджреЗрд╡ рдЪрд▓рд╛рдПрдБ


рдЫрд╡рд┐

Strapi


рдЬрдм рдХреЛрдИ рдлреНрд░рдВрдЯрдПрдВрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рд░реЗрд╕реНрддрд░рд╛рдВ, рд╡реНрдпрдВрдЬрди рдФрд░ рдСрд░реНрдбрд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕ рдЬрд╛рджреВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реИрдкреА рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред

рд╕реНрдЯреНрд░реИрдкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк Node.js 10 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рдЖрдкрдХреА рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ: MongoDB, Postgres, рдпрд╛ MySQLред

рд╕реНрдЯреНрд░реИрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ --quickstart рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрдЯреНрд░реИрдкреА рдХреЛ SQLite рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╕реНрдЯреНрд░реИрдкреА рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИред (рдпрджрд┐ MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)

рд╕реНрдЯреНрд░реИрдкреА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ рдЬреЛ рд╣рдо backendрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд╛рдо рджреЗрдВрдЧреЗdeliveroo-clone-tutorial

yarn create strapi-app backend --quickstart  
# 
npx create-strapi-app backend --quickstart  

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рддрдХ рд╣рдо рдХреБрдЫ рд╕реЗрдХрдВрдб рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдЦреЛрд▓реЗрдВ : 1337 / рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ / рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВред

рдиреЛрдЯ: рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рд╕реНрдЯреНрд░реЗрдкреА рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

strapi develop 

рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдмрдирд╛рдПрдБ


рдкрдВрдЬреАрдХрд░рдг рдкреГрд╖реНрда рдкрд░ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЬреЛрдбрд╝реЗрдВ ред

рдЫрд╡рд┐

рдорд╣рд╛рди рдХрд╛рдо, рд╣рдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ Nuxt.js рдФрд░ Strapi рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ!



рдЕрдиреБрд╡рд╛рджрдХ рдХреЗ рдиреЛрдЯреНрд╕:

рд▓реЗрдЦрдХ рдХреЛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реА

рдпрд╣ рд▓реЗрдЦ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдкрд╣рд▓рд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдЙрди рд╕рднреА рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдереА!

All Articles