Javascript Vue JS-添加多个组件的问题
我是Vue JS新手,我在网上读过几篇不同的文章,但我不知道如何显示我的组件。我用的是拉威尔5.5 我有一个包含以下内容的登录视图页面:Javascript Vue JS-添加多个组件的问题,javascript,laravel-5,vue.js,vuejs2,vue-component,Javascript,Laravel 5,Vue.js,Vuejs2,Vue Component,我是Vue JS新手,我在网上读过几篇不同的文章,但我不知道如何显示我的组件。我用的是拉威尔5.5 我有一个包含以下内容的登录视图页面: <div id="app"> <div class="login-box"> <login-form></login-form> </div><!-- /.login-box --> </div> 我已经在app.js文件中注册了它: requ
<div id="app">
<div class="login-box">
<login-form></login-form>
</div><!-- /.login-box -->
</div>
我已经在app.js
文件中注册了它:
require('./bootstrap');
Vue.component('example', require('./components/Example.vue'));
Vue.component('login-form', require('./components/Auth/Login.vue'));
const app = new Vue({
el: '#app',
});
我收到错误,[Vue warn]:未知自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“name”选项。(在根实例中找到)
我已经在app.js
中注册了它,如上图所示,如果我使用
它会正确显示
我将
Example.vue
更改为模板文件,但它没有更新-它仍然显示旧模板。我怎样才能让它出现呢?我记得几周前,我还在为同样的问题苦苦挣扎
简言之,解决办法是不要那样做
相反,您希望将每个组件显式注册为:
require('./bootstrap');
const Example = require('./components/Example.vue');
const Login = require('./components/Auth/Login.vue');
const app = new Vue({
el: '#app',
components: { Example, Login }
});
上述操作不仅针对
Vue
而且针对所有嵌套组件都必须完成。您的问题是我认为的问题,但我认为该行位于bootstrap.js
中,这就是我想查看该文件的原因,您会注意到,您从未在app.js
中导入Vue
,从laravel
初学者项目中,该行在app.js
中,而不是bootstrap.js
中,只要查看您的app.js
我就发现您丢失了
window.Vue = require('vue');
所以我猜是在
require('./bootstrap.js')下面加上这一行;您的应用程序将注册这两个
Vue`组件尝试按照错误文本中的说明为您的登录组件提供名称。要执行此操作,请在登录时在导出的对象中添加名称:'login form',
。vue@oniondomes像这样<代码>导出默认值{name:'login-form',mounted(){console.log('Component-mounted.')}-尝试了这一点,但仍然得到了相同的错误。我只是尝试通过gues提供帮助,但尝试摆脱这些内联要求
sconst Login=require('./components/Auth/Login.vue')代码>就在引导行之后。如果它仍然不起作用,检查它的值你能更新你的问题并将bootstrap.js
文件中的代码包含在resources/assets/js
文件夹中吗?@NikolaGavric这是默认的laravel设置……虽然这可能会解决问题,但下面是注册全局和本地组件的参考:嗯,仍然有一些问题。我正在尝试使用标签,
,而对于Laravel,它似乎甚至没有在resources/js/app.js
中获取这个vue文件,我需要将它移动到public/js/.etc
?这是Laravel的基础安装-没有任何更改。我本来可以帮助你的。我同时使用laravel和vue,但从未同时使用过这两个工具,很抱歉我让您失望了。遗憾的是,将其移动到公用文件夹应该没有任何影响,因为.vue文件应该是构建并捆绑在一起的。您是否运行了某种构建过程?我鼓励你观看Vue Laracast。
window.Vue = require('vue');