序文最近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の解凍バージョンのインストール構成に接続し、問題が発生しました
ロックの概念①. 現実世界では、鍵は外の世界から身を隠したいときに使う道具です。 ②. コンピュータ...
目次成果を達成するsortablejs の紹介具体的な実装成果を達成する最初は、antdesign ...
実装方法は3つのステップに分かれています。テンプレートに 2 つのボタンを設定し、v-if と v-...
目次1. 矢印関数の使用1. 通常関数から矢印関数へ2. 中括弧を省略してリターンする3. 括弧を省...
検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...
1. 実験環境シリアルナンバープロジェクトソフトウェアとバージョン1オペレーティング·システムCen...
1. ドキュメントフローとフローティング1. ドキュメントフローとは何ですか? HTML では、ドキ...
この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
1. 脆弱性の説明マイクロソフトは2019年5月15日、CVE番号CVE-2019-0708のWin...
この記事は主に、MySQL インデックスの長さ制限の原理の分析を紹介します。サンプル コードを通じて...
序文説明を簡略化するために以前に設定した要件は、他のグループから MQ メッセージを受信し、データベ...
Linux システムに触れたばかりの初心者として、VMware 仮想マシンに CentOS6.5 シ...
BMP は、ハードウェア デバイスに依存せず、広く使用されている画像ファイル形式です。ビットマップ保...
少し前にTikTokで揺れる連打が流行っていたので真似してみることにしました。さっそく効果をみてみま...
目次序文1. 型2. インスタンス3. コンストラクター詳細: 4. 文字列要約する序文Javasc...