如何在不创建组件的情况下从 laravel 刀片视图文件扩展 app.js 方法/数据/手表

Posted

技术标签:

【中文标题】如何在不创建组件的情况下从 laravel 刀片视图文件扩展 app.js 方法/数据/手表【英文标题】:How to extend app.js methods/data/watch from laravel blade view file without creating components 【发布时间】:2020-07-25 00:59:53 【问题描述】:

我是 vue.js 的新手。

我的app.js 是:

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

我正在使用 laravel,我不想每次都因为很小的原因创建组件。 如果不制作组件app.js 将充满方法,这些方法并非在每个页面中都有用。这就是为什么我想要一种从我的home.blade.php 文件中扩展app.js 的方法

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

(不创建任何组件)。

或者,使用 *.blade.php

中的 &lt;script&gt; .. &lt;/script&gt; 更新/添加 data: ... methods: ...

【问题讨论】:

【参考方案1】:

我找到了解决办法!

使用Mixin

app.js之外创建mixin.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, ...] ]
*/

更多详情:Official Documentation

【讨论】:

以上是关于如何在不创建组件的情况下从 laravel 刀片视图文件扩展 app.js 方法/数据/手表的主要内容,如果未能解决你的问题,请参考以下文章

子组件如何在不监听生命周期方法的情况下从父组件接收 props?

Laravel:有啥方法可以在不编译的情况下加载刀片模板?

如何在不渲染的情况下从 forwardref 组件添加 ref?

Laravel - 如何在视图中创建(匿名)动态刀片组件

如何在不丢失“this”上下文的情况下从 React 组件中写入 apollo 缓存

Angular 4在不使用服务的情况下从另一个组件执行功能