ホームページ >ウェブフロントエンド >Vue.js >VUE3 入門チュートリアル: Vue.js プラグインを使用して星評価コンポーネントをカプセル化する
Web アプリケーションでは、商品、サービス、その他のコンテンツを評価するために星評価コンポーネントがよく使用されます。開発者が使いやすくするために、Vue.js コミュニティにはすでに多くの星評価コンポーネント プラグインが用意されていますが、星評価コンポーネント プラグインを自分でカプセル化する必要もあります。この記事では、コンポーネントを記述する従来の方法を放棄し、Vue.js 3 の複合 API を紹介し、Vue.js プラグインを使用して星評価コンポーネントをカプセル化する方法を説明します。
まず、Composition API について学びましょう。構成 API には主に次の利点があります。
次に、Composition API を使用して、星評価コンポーネントを設計および実装します。
プラグインは、Vue.js の基礎となる構造の拡張です。 Vue.js プラグインは Vue.js アプリケーションにグローバル レベルの機能を提供できるため、共通のコンポーネントやディレクティブの実装に適しています。 Vue.js プラグインを作成してインストールする基本的な手順は次のとおりです。
サンプル コードは次のとおりです。
// 定义插件对象 const StarRating = { install: function(Vue) { // 在install方法中注册全局组件 star-rating Vue.component('star-rating', { // 组件选项 }) } } // 调用Vue.use()方法安装插件 Vue.use(StarRating)
Composition API では、次の使用をお勧めします。 reactive() メソッドを使用してコンポーネントの状態を定義します。 computed() メソッドを使用してコンポーネントの派生状態を計算し、watch() メソッドを使用してコンポーネントの状態の変化を監視します。プロパティとエミットを介してデータをより適切に渡すために、reactive() を使用してプロパティとイベント オブジェクトを定義できます。
コンポーネントには次の属性が必要です:
コンポーネントには次のイベントが必要です:
プロパティとイベント オブジェクトを定義するサンプル コードは次のとおりです。
const StarRating = { install: function(Vue) { Vue.component('star-rating', { setup(props, {emit}) { const state = reactive({ rating: 0, maxRating: props.maxRating || 5, starSize: props.starSize || 25, padding: props.padding || 5, showRating: props.showRating || false, }) function updateRating(rating) { state.rating = rating emit('update', rating) } return { state, updateRating } } }) } }
次に、テンプレート コードを使用してコンポーネントの UI を実装します。 Vue.js3 では setup() 関数を使用してコンポーネントのステータスとイベントを設定し、テンプレート内の補間式と命令を使用してコンポーネント UI をレンダリングします。
以下はコンポーネント UI を実装するサンプル コードです:
const StarRating = { install: function(Vue) { Vue.component('star-rating', { setup(props, {emit}) { const state = reactive({ rating: 0, maxRating: props.maxRating || 5, starSize: props.starSize || 25, padding: props.padding || 5, showRating: props.showRating || false, }) function updateRating(rating) { state.rating = rating emit('update', rating) } const stars = [] for (let i = 0; i < state.maxRating; i++) { stars.push(i < state.rating ? 'star' : 'star_border') } return { state, updateRating, stars, } }, template: ` <div> <i v-for="star in stars" :key="star" :class="[star]" :style="{ 'font-size': state.starSize + 'px', 'padding-right': state.padding + 'px', }" @click="updateRating(stars.indexOf(star) + 1)" ></i> <span v-if="state.showRating">{{state.rating}}/{{state.maxRating}}</span> </div> ` }) } }
v-for ディレクティブを使用して星のレンダリングをループし、i タグと FontAwesome フォント アイコンを使用して星のアイコンをレンダリングしました。 。このようにして、ユーザーの選択に基づいて評価を更新できます。
これで、星評価コンポーネント プラグインの開発が完了しました。このプラグインを Vue.js アプリケーションにグローバルにインストールし、任意のコンポーネント テンプレートで使用できます。
Vue.js アプリケーションでコンポーネントを使用するためのサンプル コード:
const app = Vue.createApp({}) app.use(StarRating) app.component('my-component', { data() { return { rating: 3 } }, template: ` <div> <star-rating :max-rating="5" :show-rating="true" :rating="rating" @update="rating = $event" /> </div> ` }) app.mount('#app')
このサンプル コードでは、StarRating プラグインを Vue.js アプリケーションに登録し、my-component スコアリング コンポーネントに追加しました。コンポーネントで使用されます。 my-component コンポーネントでは、$event パラメーターを使用して更新イベントの新しい評価値にアクセスします。
Composition API は、Vue.js コンポーネント開発に多くの新機能をもたらします。これらの新機能を Vue.js プラグイン メカニズムと組み合わせて使用すると、コンポーネントのカプセル化と再利用が容易になります。この記事では、Composition API と Vue.js プラグインを使用して星評価コンポーネントを開発する方法を段階的に学びました。これらのテクニックを使用して、独自のコンポーネント プラグインを開発およびパッケージ化できるようになりました。
以上がVUE3 入門チュートリアル: Vue.js プラグインを使用して星評価コンポーネントをカプセル化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。