Post 2022 answer:
It's best to use this package: https://github.com/tighten/ziggy
It allows you to use call route() in vue files.
2017 answer:
I'm not sure if you are using Storage in the blade view or the component. For clarity, one can't use the Storage facade in Vue components. It's only for Laravel.
You have two options: allow the component to accept a prop or create a Laravel route that returns the URL with the help of Storage facade.
#Option 1 - Prop passing
In your blade view,
<my-component :src="'{{ Storage::disk("s3")->url(' + this.user.avatar + ')' }}">
#Option 2 - Laravel route
Create a simple route, something like
Route::get('api/my-avatar', UserController@getAvatar')
In your the UserController
public function getAvatar()
{
return Storage::disk("s3")->url( auth()->user()->avatar );
}
and call that route from axios.