序文最近Vueを体験しました。Toastはフロントエンドでよく使われるコンポーネントです。この記事ではVueがグローバルトーストコンポーネントをカプセル化するプロセスを詳しく紹介します。詳しい紹介を見ていきましょう。 1. vue-cliを使う1. Toastコンポーネントを定義する// コンポーネント/トースト <テンプレート> <トランジション名="フェード"> <div v-show="visible">{{メッセージ}}</div> </トランジション> </テンプレート> <スクリプト> エクスポートデフォルト{ データ () { 戻る { 表示: 偽、 メッセージ: '' } } } </スクリプト> <スタイルスコープ> div { 位置: 固定; 上位: 30% 左: 50%; パディング: 5px 20px; 色: #fff; 背景色: #424242; 境界線の半径: 5px; テキスト配置: 中央; 変換: translate(-50%, -50%); } /* Vue アニメーション遷移効果設定 */ .フェード-エンター-アクティブ、 .フェードアウトアクティブ{ 遷移: 不透明度 .5 秒; } .fade-enter、.fade-leave-to { 不透明度: 0; } </スタイル> 2. main.jsで設定する'vue' から Vue をインポートします './App.vue' からアプリをインポートします。 './components/Toast' から Toast をインポートします。 // プラグインオブジェクトを定義する const ToastObj = { インストール: 関数 (Vue) { // Vue の「サブクラス」コンポーネントを作成する const ToastConstructor = Vue.extend(Toast) // このサブクラスのインスタンスを作成し、要素にアタッチします const instance = new ToastConstructor() console.log(インスタンス) // このインスタンスを動的に作成された要素にマウントし、要素をグローバル構造インスタンスに追加します。$mount(document.createElement('div')) document.body.appendChild(インスタンス.$el) // コンポーネントを制御するために、Vue のプロトタイプ チェーンにメソッドを登録します。Vue.prototype.$toast = (msg,duration = 1500) => { インスタンス.メッセージ = メッセージ インスタンス.visible = true タイムアウトを設定する(() => { インスタンス.visible = false }、 間隔) } } } Vue.use(ToastObj) Vue.config.productionTip = false 新しいVue({ レンダリング: h => h(App), }).$mount('#app') 3. 他のコンポーネントでの使用<テンプレート> <div class="hello"> <h1>{{ メッセージ }}</h1> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: 'HelloWorld', データ: () => { 戻る { メッセージ: 'HelloWord' } }, マウントされた(){ //トースト コンポーネントを使用します。this.$toast('コンポーネントが正常にマウントされました') } } </スクリプト> 2. vue-cliなしvue-cli の助けを借りれば、コンポーネントのインポートとエクスポートは簡単ですが、ビルド ツールの助けがなければ、他の方法が必要になります。 1. トーストコンポーネントを登録する<!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0"> <title>ドキュメント</title> <script src="./static/vue/vue.min.js"></script> </head> <本文> <div id="アプリ"> <私のボタン></私のボタン> </div> <div id="トースト"></div> <スクリプト> // トーストのグローバルコンポーネントを定義する const Toast = Vue.component('toast', { データ() { 戻る { isShow: false、 メッセージ: 'グローバルプロンプト'、 ラッパースタイル: { 位置: '固定'、 上: '20%'、 左: '50%'、 zインデックス: 10000, パディング: '6px 12px', 背景色: '#424242', 境界線の半径: '5px', 変換: 'translate(-50%, -50%)' }, テキストスタイル: { 色: '#fff', フォントサイズ: '14px' } } }, テンプレート: `<div v-show="isShow" :style="wrapperStyle"> <span :style="textStyle">{{ メッセージ }}</span> </div>` }) 2. トーストプラグインを登録する// プラグインオブジェクトを定義する const ToastObj = { インストール: 関数 (Vue) { // トーストコンポーネントインスタンスを作成し、要素にアタッチします。const instance = new Toast() //このインスタンスをDOMインスタンスにマウントします。$mount('#toast') // コンポーネントを制御するために、Vue のプロトタイプ チェーンにメソッドを登録します。Vue.prototype.$toast = ({message,duration = 2000} = {}) => { インスタンス.メッセージ = メッセージ インスタンス.isShow = true タイムアウトを設定する(() => { インスタンス.isShow = false }、 間隔) } } } //トーストプラグインを登録する Vue.use(ToastObj) 3. 他のコンポーネントでの使用Vue.component('my-button', { データ() { 戻る { ラッパースタイル: { 幅: '70px'、 パディング: '20px', 背景色: '緑' }, テキストスタイル: { 色: '#fff', フォントサイズ: '16px' } } }, メソッド: { ハンドルクリック() { this.$トースト({ メッセージ: 「クリックしました」 }) } }, テンプレート: `<div :style="wrapperStyle" @click="handleClick"> <span :style="textStyle">プロンプトをクリック</span> </div>` }) 定数vm = 新しいVue({ el: '#app' }) </スクリプト> </本文> </html> 要約するこれで、グローバル トースト コンポーネントの Vue カプセル化に関するこの記事は終了です。グローバル トースト コンポーネントの Vue カプセル化に関するより関連性の高い記事については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Alibaba Cloudのセキュリティルール設定の詳細な説明
>>: PythonはデータベースMySQLの解凍バージョンのインストール構成に接続し、問題が発生しました
さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <html> <...
まず、行の高さが要素の高さと等しい場合にテキストが垂直方向に中央揃えにならない理由を説明します。実際...
1つ。 Mysql Binlog フォーマットの紹介 Mysql binlog ログには、State...
1-ドロップダウン選択ボックスのスタイル設定 - ドロップダウン リストを変更します。 2- <...
著者が MySQL を使用してユーザーを追加していたところ、ユーザー名が間違って記述されていることに...
目次1. Vue3コンポーネント通信方式2. Vue3通信の使い方2.1 小道具2.2 $エミット2...
/etc/yum.repos.d/フォルダに入るrabbitmq-erlang.repo ファイルを...
以下のように表示されます。昨日: UNIX_TIMESTAMP(CAST(SYSDATE() AS ...
イベントとは、クリック、マウスオーバー、ページの読み込み後にトリガーされる読み込みイベントなど、ユー...
サーバーの負荷を軽減するために、ユーザーが入力するときにフロントエンドページで簡単な検証を実行する必...
目次アイデア傍受を要求するレスポンスインターセプションhttpClient.tsを使用してリクエスト...
以前、プロジェクトでQRコードをスキャンして情報を表示する機能を開発する必要がありました。インターネ...
<br />ブログを始めて 1 年、私はブログの内外で多くのことを個人的に学びました。ま...
目次導入Tomcatへの接続方法APR と Tomcat ネイティブtomcat で APR を使用...
VMwareaのインストールプロセスは説明しませんが、主にwin7イメージをロードする方法を説明しま...