【发布时间】:2018-07-21 10:11:30
【问题描述】:
我是 Vue JS 的新手,我已经在线阅读了几篇不同的文章,但我不知道如何显示我的组件。我正在使用 Laravel 5.5。
我有一个包含以下内容的登录视图页面:
<div id="app">
<div class="login-box">
<login-form></login-form>
</div><!-- /.login-box -->
</div>
我在/components/Auth/Login.vue 创建了一个Login.vue 页面:
<template>
<div class="login-box-body">
<p class="login-box-msg"> Sign in to start your session. </p>
<form action="{{ url('/login') }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group has-feedback">
<input type="text" class="form-control" placeholder="Username" name="username"/>
<span class="glyphicon glyphicon-user form-control-feedback"></span>
</div>
<div class="form-group has-feedback">
<input type="password" class="form-control" placeholder="Password" name="password"/>
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div class="row">
<div class="col-xs-8">
<div class="checkbox icheck">
<label>
<input type="checkbox" name="remember"> Remember Me
</label>
</div>
</div>
<div class="col-xs-4">
<button type="submit" class="btn btn-primary btn-block btn-flat">Sign In</button>
</div>
</div>
</form>
<a href="{{ url('/password/reset') }}"> Forgot Password? </a><br>
</div>
</template>
<script>
export default {
mounted() {
console.log('Component mounted.')
}
}
</script>
我已经在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]: Unknown custom element: <login-form> - did you register the component correctly? For recursive components, make sure to provide the "name" option. (found in root instance)。
如上所示,我已在app.js 中注册它,如果我使用<example></example>,它会正确显示。
我将Example.vue 更改为模板文件,但它没有更新 - 它仍然显示旧模板。我怎样才能让它出现?
【问题讨论】:
-
尝试为您的登录组件提供一个名称,如错误文本中所述。为此,在 Login.vue 的导出对象中添加
name: 'login-form', -
@oniondomes 喜欢这样吗?
export default { name:'login-form', mounted() { console.log('Component mounted.') } }- 试过了,但仍然出现同样的错误。 -
我只是想通过 gues 提供帮助,但尝试摆脱这些内联
requires。const Login = require('./components/Auth/Login.vue');在引导行之后。如果它仍然不起作用,请检查它的值 -
您能否更新您的问题并将
bootstrap.js文件中的代码包含在resources/assets/js文件夹中? -
@NikolaGavric 是默认的 laravel 设置...github.com/laravel/laravel
标签: javascript laravel-5 vue.js vuejs2 vue-component