Рубрики
Vue store

Создание главного Store

  • создание главного файла
    resources\store.js
import {createStore} from "vuex";
export default createStore({
state:{
//переменные в состоянии
test:0,//пример числовой целой переменной
},
getters:{
//функции для вычисления
},
mutations:{
//функции изменяют переменные данного модуля
},
actions:{
//функции обращаются к секциям модуля и привязанным модулям
},
modules:{
//модули, которые привязываются к данному модулю
},
});
  • регистрация созданного главного файла в приложении
    resources\js\app.js
require('./bootstrap');
import {createApp} from 'vue';
//главный компонент
import App from '../App.vue';
import store from '../store.js';
...
//создание главного компонента и регистрация внутри других компонентов
const app=createApp(App);
app.use(store);
...
app.mount('#app');
  • вызов в главном store из секции данных
    в главном компоненте проекта
  1. в теге {{$store.state.test}}
  2. в скрипте this.$store.state.test
<template>
<div>
<div> {{$store.state.test}} </div>
<map-wrap/>
<map-load/>
<a @click="test">Click me!</a>
</div>
</template>

<script>
export default {
    components:{
        map_load,
        map_wrap
    },
  data: () => ({
    map:null,
    polygons:{},
  }),
methods:{
  test:function(){
    alert(this.$store.state.test);
  }
},

}
</script>
Рубрики
Vue store

Установка Store

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

Установка VueX в терминале IDE приложения

npm install vuex@next --save
Глобальное состояние приложения во Vue.js
Vue.js
Рубрики
Laravel

Настройки в шаблоне Laravel проекта

  • Первый модульный компонент Vue3 в Laravel проекте
    resources\js\components\MyTest.vue
<template>
<div>test</div>
</template>
  • регистрируем компонент Vue в Laravel проекте
    resources\js\app.js
require('./bootstrap');
import {createApp} from 'vue';
import MyTest from './components/MyTest.vue';

const app=createApp({});
app.component('my-test',MyTest);

app.mount('#app');
  • На шаблоне Laravel проекта
    (пример resources\views\index.blade.php)
    размещение Vue3 компонента в атрибуте id тега (примере my-test)
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
    <div id="app">
    <my-test/>
    </div>

    <script src="./js/app.js"></script>
    </body> 
</html>
  • создание роуминга Laravel
    для шаблона (пример resources\view\index.blade.php)
    как главной страницы
    на routes\web.php
...
Route::get('/', function () {
    return view('index');
});
...
Рубрики
Vue компоненты Vue.js

Структура компонента Vue3

Рубрики
Vue.js

Первый Vue3 компонент в Laravel проекте

  • Первый модульный компонент Vue3 в Laravel проекте
    resources\js\components\MyTest.vue
<template>
<div>test</div>
</template>
  • регистрируем компонент Vue в Laravel проекте
    resources\js\app.js
require('./bootstrap');
import {createApp} from 'vue';
//главный компонент
import App from 'components/../App.vue';
//компоненты
import comp1 from 'components/comp1.vue';
import comp2 from 'components/comp2.vue';
//создание главного компонента
//и регистрация внутри него других компонентов
const app=createApp(App);
app.component('comp-1',comp1);
app.component('comp-2',comp2);
app.mount('#app');
  • На шаблоне Laravel проекта
    (пример resources\views\index.blade.php)
    размещение Vue3 компонента в id=»app» (примере my-test)
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
    <div id="app"></div>
    <script src="./js/app.js"></script>
    </body> 
</html>
  • создание роуминга Laravel
    для шаблона (пример resources\view\index.blade.php)
    как главной страницы
    на routes\web.php
...
Route::get('/', function () {
    return view('index');
});
...