【发布时间】:2018-03-01 07:46:20
【问题描述】:
我目前有一个使用 Vue.js 作为前端 JavaScript 框架的 Laravel 应用程序。对于大型脚本,我使用组件,但对于较小的脚本,我希望只在刀片模板中使用 Vue 实例。
我遇到的问题是我目前必须以一种方式工作的 app.js 配置破坏了另一种方式,反之亦然。
require('./bootstrap');
window.Vue = require('vue');
Vue.component('repairs', require('./components/repairs.vue'));
Vue.component('repair-show', require('./components/repair-show.vue'));
const app = new Vue({
el: '#app'
});
上面的工程组件,下面的工程用于创建实例。
require('./bootstrap');
window.Vue = require('vue');
Vue.component('repairs', require('./components/repairs.vue'));
Vue.component('repair-show', require('./components/repair-show.vue'));
我明白为什么这对导出到全局 Vue 实例的组件都不起作用我只是想知道是否有另一种配置方式可以使两种方式都起作用。
供您参考,我有一个 Vue 组件中的 Vue 脚本示例。
import axios from 'axios';
var csrf_token = $('meta[name="csrf-token"]').attr('content');
export default {
created() {
this.blocks = JSON.parse(this.b);
this.contractors = JSON.parse(this.c);
this.token = csrf_token;
},
props: ['b', 'c'],
data(){
return {
blocks: '',
blockSelected: '',
units: '',
token: '',
}
},
methods: {
getUnits: function(){
var self = this;
axios.post('/getrepairsUnit', {
blockSelected: this.blockSelected,
})
.then(function(response) {
self.units = response.data;
})
.catch(function(error) {
console.log(error);
});
},
}
}
还有一个我的 Vue 实例的例子……
<script>
var app = new Vue({
el: '#app',
data: {
deposit: 0
}
});
</script>
我在尝试运行 Vue 实例时遇到的错误如下:
[Vue warn]: Property or method "deposit" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option.
(found in root instance)
我可以通过控制台注销,所以有点工作,但视图没有获取数据。但是,如果我删除 app.js 文件中的全局实例,这确实有效。
谢谢
【问题讨论】:
标签: javascript laravel vue.js vuejs2 vue-component