Как расширить приложение. js методы / данные / часы из laravel файла блэйда без создания компонентов - PullRequest
0 голосов
/ 12 апреля 2020

Я новичок в vue. js.

Мой app.js:

import { store } from './store';
const app = new Vue({
    el: '#app',
    store,
    mounted(){
        ...
    },
    methods:{
        ...
    }
});

Я использую laravel и я не хочу каждый раз создавать компоненты по очень маленькой причине. Без создания компонентов app.js будет полон методов, которые не все полезны на каждой странице. Вот почему я хочу расширить app.js из моего home.blade.php файла

@section(scripts)
    <script>
        ...
    </script>
@endsection

(без создания какого-либо компонента).

Или, обновить / добавить в data:{ ... } & methods:{ ... } с использованием этого <script> .. </script> в *.blade.php

1 Ответ

0 голосов
/ 12 апреля 2020

Я нашел решение!

Используйте Mixin

Создайте mixin.js файл, кроме app.js

Например

export var custom = {
  data: {
    show: true
  },
  methods: {
    hide: function(){
      this.show = false;
    }
  },
  watch: {
    ...
  },

  ...

};

и в app.js файле:

import { store } from './store';
import { custom } from './mixin';  //Import mixin
window.app = new Vue({
    el: '#app',
    mixins: [custom],  // Add mixin var here
    store,
});

/*
  [note: for multiple: import {custom1, custom2, ...} and define [custom1, custom2, ...] ]
*/

Подробнее: Официальная документация

...