Laravel 5.4 をベースに大規模なアプリケーションを開発しています。大規模なアプリケーションに fronend を実装するためのベスト プラクティスは何だろうと思っています。すべてのスタイリングとHTMLレンダリングのためにlaravelブレードに実装し、インタラクティブ性のためにvueを使用するか、ブレードを使用してvueコンポーネントを呼び出し、すべてのものを実装するのはvueですか? いくつかの例を見てみましょう:
これは最初のアプローチです:
laravel ブレードで:
@extends('layout')
@section('content')
<customer-search></customer-search>
<customer-table></customer-table>
@endsection
顧客検索コンポーネントは次のようになります。
<template>
<div>
<form action="/customer" method="GET">
<input type="text" name="name" @input="updateValue($event.target.value)" :value="name" />
<submit @click="search">Search</button>
</form>
</div>
</template>
<script>
export default {
data: function () {
return {
name: '',
}
},
methods: {
search() {
// Get data from server, update related data model for using in customer table, ...
}
}
}
</script>
および顧客テーブル コンポーネント:
<template>
<div>
<table>
<thead>
<tr>
<th>Name</th>
<th>Access</th>
</tr>
</thead>
<tbody>
<tr v-for="customer in customers">
<td>{{ customer.name }}</td>
<td><a href="#">Link</a></td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
}
</script>
2 番目のアプローチ:ブレード:
@extends('layout')
@section('content')
<customer-index>
<form action="/customer" method="GET">
<input type="text" name="name" @input="updateValue($event.target.value)" :value="name" />
<submit @click="search">Search</button>
</form>
<table>
<thead>
<tr>
<th>Name</th>
<th>Access</th>
</tr>
</thead>
<tbody>
<tr v-for="customer in customers">
<td>{{ customer.name }}</td>
<td><a href="#">Link</a></td>
</tr>
</tbody>
</table>
</customer-index>
@endsection
および顧客インデックス コンポーネント:
<tempalte>
<div>
<slot></slot>
</div>
</template>
<script>
export default {
data: function () {
return {
name: '',
}
},
methods: {
search() {
// Get data from server, update related data model for using in customer table, ...
},
// Other methods, ...
}
}
</script>
3 番目の可能性: 3 番目の可能性は、2 番目のアプローチを使用して、コンポーネントをさらに掘り下げることです。たとえば、テーブル用のコンポーネント、フォーム用のコンポーネント、入力用のコンポーネント、ボタン用のコンポーネントなどを使用して、フロントエンドと統合されたフロントエンドに多くの時間を費やすには、どれを使用する必要がありますか?
Vue コンポーネントは、他の場所や他のプロジェクトでも再利用できるように、常に疎結合にする必要があります。
vue コンポーネントで可能な限り最小限のマークアップを使用する必要があります。これにより、それらは移植可能になり、編集しなくても再利用できます。
明らかに、これは意見に基づく質問ですが、私の意見では、上記は少なくともベストプラクティスです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加