我的 Vue 组件未显示在 Laravel 中
My Vue component is not showing up in Laravel
我的 vue 组件没有显示,我没看到这里出了什么问题。
我的控制台没有错误,我使用 npm 运行 hot
我的app.js
require('./bootstrap');
window.Vue = require('vue').default;
/**
* The following block of code may be used to automatically register your
* Vue components. It will recursively scan this directory for the Vue
* components and automatically register them with their "basename".
*
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
*/
// const files = require.context('./', true, /\.vue$/i)
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
Vue.component('follow-button', require('./components/FollowButton.vue').default);
/**
* Next, we will create a fresh Vue application instance and attach it to
* the page. Then, you may begin adding components to this application
* or customize the JavaScript scaffolding to fit your unique needs.
*/
const app = new Vue({
el: '#app',
});
我的FollowButon.vue组件
<template>
<div>
<button class="btn btn-primary ml-4" v-text="buttonText"></button>
</div>
</template>
<script>
export default {
mounted() {
console.log('Component mounted.')
}
}
</script>
vue应该显示的地方
extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-3 p-5">
<img src="{{ $user->profile->profileImage() }}" class="rounded-circle w-100">
</div>
<div class="col-9 pt-5">
<div class="d-flex justify-content-between align-items-baseline">
<div class="d-flex align-items-center pb-3">
<div class="h4">{{$user->name}}</div>
<follow-button></follow-button>
</div>
@can('update',$user->profile)
<a href="/p/create">Add New Post</a>
@endcan
</div>
@can('update',$user->profile)
<a href="/profile/{{ $user->id }}/edit">Edit profile</a>
@endcan
<div class="d-flex">
<div class="pr-5"><strong>{{ $user->posts->count() }}</strong> posts</div>
<div class="pr-5"><strong>23k</strong> followers</div>
<div class="pr-5"><strong>212</strong> following</div>
</div>
<div class="pt-4"><strong>{{ $user->profile->title}}</strong></div>
<div>{{ $user->profile->description}}</div>
<div><a href="#">{{$user->profile->url}}</a></div>
</div>
</div>
<div class="row pt-5">
@foreach($user->posts as $post)
<div class="col-4 pb-5">
<a href ="/p/ {{ $post->id }}">
<img src="/storage/{{ $post->image }}"; class="w-100">
</a>
</div>
@endforeach
</div>
</div>
@endsection
我的 <head>
部分有这个
<script src="{{ asset('js/app.js') }}" defer></script>
如果我将其更改为
<link rel="stylesheet" href="{{ mix('css/app.css') }}" />
<script defer src="{{ mix('js/app.js') }}"></script>
还是不行
此外 的任何答案都不适合我。
您必须将 app
ID 添加到 <follow-button></follow-button>
的父元素
像这样
<div id="app">
<follow-button></follow-button>
</div>
我的 vue 组件没有显示,我没看到这里出了什么问题。 我的控制台没有错误,我使用 npm 运行 hot
我的app.js
require('./bootstrap');
window.Vue = require('vue').default;
/**
* The following block of code may be used to automatically register your
* Vue components. It will recursively scan this directory for the Vue
* components and automatically register them with their "basename".
*
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
*/
// const files = require.context('./', true, /\.vue$/i)
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
Vue.component('follow-button', require('./components/FollowButton.vue').default);
/**
* Next, we will create a fresh Vue application instance and attach it to
* the page. Then, you may begin adding components to this application
* or customize the JavaScript scaffolding to fit your unique needs.
*/
const app = new Vue({
el: '#app',
});
我的FollowButon.vue组件
<template>
<div>
<button class="btn btn-primary ml-4" v-text="buttonText"></button>
</div>
</template>
<script>
export default {
mounted() {
console.log('Component mounted.')
}
}
</script>
vue应该显示的地方
extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-3 p-5">
<img src="{{ $user->profile->profileImage() }}" class="rounded-circle w-100">
</div>
<div class="col-9 pt-5">
<div class="d-flex justify-content-between align-items-baseline">
<div class="d-flex align-items-center pb-3">
<div class="h4">{{$user->name}}</div>
<follow-button></follow-button>
</div>
@can('update',$user->profile)
<a href="/p/create">Add New Post</a>
@endcan
</div>
@can('update',$user->profile)
<a href="/profile/{{ $user->id }}/edit">Edit profile</a>
@endcan
<div class="d-flex">
<div class="pr-5"><strong>{{ $user->posts->count() }}</strong> posts</div>
<div class="pr-5"><strong>23k</strong> followers</div>
<div class="pr-5"><strong>212</strong> following</div>
</div>
<div class="pt-4"><strong>{{ $user->profile->title}}</strong></div>
<div>{{ $user->profile->description}}</div>
<div><a href="#">{{$user->profile->url}}</a></div>
</div>
</div>
<div class="row pt-5">
@foreach($user->posts as $post)
<div class="col-4 pb-5">
<a href ="/p/ {{ $post->id }}">
<img src="/storage/{{ $post->image }}"; class="w-100">
</a>
</div>
@endforeach
</div>
</div>
@endsection
我的 <head>
部分有这个
<script src="{{ asset('js/app.js') }}" defer></script>
如果我将其更改为
<link rel="stylesheet" href="{{ mix('css/app.css') }}" />
<script defer src="{{ mix('js/app.js') }}"></script>
还是不行
此外
您必须将 app
ID 添加到 <follow-button></follow-button>
像这样
<div id="app">
<follow-button></follow-button>
</div>