カスタムのトグルコンポーネントを作成します.js🎛
15809 ワード
カスタムコンポーネントを作ることは混乱であるべきではありません.そして、何を作成するためにVueのネイティブ機能を使用するよりも優れている!それでそれをしましょう.のは、カスタムまたはマニュアルを作成したり、何からあなたはそれをコンポーネントのコンポーネントを呼び出す!
今製作中のスイッチがあります.
これ
私は知っています、それはひどく見えます、しかし、ちょうど実装に集中しましょう
Fire端末を開き、新しいVueプロジェクトを作成します.
他のすべてのファイルを削除し、次のプロジェクト構造で表示されるものと同じように新しいものを作成します.
これがエントリポイントコンポーネントです.ご覧のように、表示する2つのものがあります.最初に、トグルコンポーネント自体と下のテキストは、トグルの状態を指示します.
の下に
次に、次のステップで使用するコンポーネントを登録します
以下のテキストに関しては、私たちは単に
オープントグル.vueファイル.ここで、我々はちょうど2つを必要とします
私たちが望むようにスタイルを整えるために
上記のCSSコードからわかるように
これを実行するには、どちらかを使うことができます
しかし、我々は実際にこれらのトグルオプションのそれぞれをクリックするときに何を行うかを実装しなかった!最後のステップの準備?ここで我々は行く!
追加する
あなたはカスタムVueとトグルを作った.数分で、私はこのフレームワークについて好きです.そのようなコンポーネントを作るのは本当に速いです.
コードのどこかに立ち往生しているか、単に出力と対話したいなら、以下のCodesandboxプロジェクトを組み込みました.
次のリソースを使用してカスタムコンポーネントを磨きます
Components Basics — Vue.js
Creating Custom Inputs With Vue.js by Joseph Zimmerman
Adding v-model Support to Custom Vue.js Components by Joshua Bemenderfer
読んでくれてありがとう.良い一日を.(✿◕‿◕✿)
PS :今年から、Devコミュニティにここで書くことにしました.以前、私は媒体を書きました.誰かが私の記事を見たいならば.here 's私の媒体プロフィール.
今製作中のスイッチがあります.
何を作っているの❓
これ
私は知っています、それはひどく見えます、しかし、ちょうど実装に集中しましょう
カスタムトグル🦵
ステップ1️⃣: セットアップ
Fire端末を開き、新しいVueプロジェクトを作成します.
vue create custom-toggle
あなたが持っていないならばVue CLI あなたのマシンにインストールされ、インストール手順を見つけることができますofficial website .他のすべてのファイルを削除し、次のプロジェクト構造で表示されるものと同じように新しいものを作成します.
custom-toggle
│
└───public
│ │ index.html
└───src
│ │
│ └───components
│ │ Toggle.vue
│ │ App.vue
│ │ main.js
└───package.json
ご覧のように、カスタムコンポーネントはコンポーネント/トグル.vueファイル.ステップ2️⃣: コードアプリ。Vue
これがエントリポイントコンポーネントです.ご覧のように、表示する2つのものがあります.最初に、トグルコンポーネント自体と下のテキストは、トグルの状態を指示します.
の下に
<script>
, 使用する data()
メソッドreturn
コンポーネントのデフォルト状態.それをbooleanにするので、どちらでも構いませんtrue
or false
. トグルを「ON」にしたいのでtrue
デフォルトでは.次に、次のステップで使用するコンポーネントを登録します
components
オプション.これが名前ですappToggle
. あなたが正しくそれをインポートしてください.その後、必ずVueのを使用してテンプレートをテンプレートに登録 v-model
双方向データバインドを可能にするディレクティブ.中を通るdataToggle
動的に状態をチェックできるようにするプロパティです.以下のテキストに関しては、私たちは単に
<p>
使用するタグtemplate
構文string interpolation . App.vue:
<template>
<div>
<app-toggle v-model="dataToggle"></app-toggle>
<p style="text-align: center">Toggle: {{ dataToggle }}</p>
</div>
</template>
<script>
import Toggle from "./components/Toggle";
export default {
data() {
return {
dataToggle: true
};
},
components: {
appToggle: Toggle
}
};
</script>
ステップ3️⃣: コードトグル
オープントグル.vueファイル.ここで、我々はちょうど2つを必要とします
div
要素は、「on」と「off」状態のために(カスタム要素を作っているように).これらは親に包まれるtoggleContainer
div
.私たちが望むようにスタイルを整えるために
on
and off
それぞれ.CSSスタイル全体が基本的なので、必要なスタイルを以下に示します..toggleContainer {
margin-top: 40%;
display: flex;
justify-content: center;
align-items: center;
}
#on,
#off {
width: 40px;
height: 20px;
border-radius: 20px;
background-color: lightgray;
padding: 2px;
text-align: center;
margin: 10px -5px;
cursor: pointer;
}
#on:hover,
#on.active {
background-color: lightgreen;
}
#off:hover,
#off.active {
background-color: lightcoral;
}
現在、最高の部分が来ます.にscript
我々はまず定義する必要があるprops
オブジェクトのアプリケーションからデータを渡すために.色相を切り替える.Vue我々は、必要なだけvalue
親コンポーネントの.これはprop 私たちは、どのトグルがクリックされるかを決定します.また、動的なCSSプロパティの変更を加えるのも便利です.上記のCSSコードからわかるように
background-color
and active
/hover
両方のための擬似クラス#on
and #off
. これらはvalue
プロップしかし、この仕事をするためには、我々はVue's class/style binding feature with v-bind
.これを実行するには、どちらかを使うことができます
v-bind:class
または、短い構文:class
. ここでは、ちょうどactive
対象となるvalue
同様dataToggle: true
) オンと反対の場合active: !value
同様dataToggle: false
) 「オフ」で.しかし、我々は実際にこれらのトグルオプションのそれぞれをクリックするときに何を行うかを実装しなかった!最後のステップの準備?ここで我々は行く!
追加する
@click
をクリックします.新方式を通過するswitched()
次のようにします.<template>
<div class="toggleContainer">
<div id="on" @click="switched(true)"
:class="{active: value}">ON</div>
<div id="off" @click="switched(false)"
:class="{active: !value}">OFF</div>
</div>
</template>
このメソッドの本体では、新しいcustom event マウスクリックで.Vueは我々を提供します$emit
この機能の構文.最初のパラメータはカスタムイベントの型ですinput
2番目のパラメータはisOn
.Toggle.vue:
<template>
<div class="toggleContainer">
<div id="on" @click="switched(true)"
:class="{active: value}">ON</div>
<div id="off" @click="switched(false)"
:class="{active: !value}">OFF</div>
</div>
</template>
<script>
export default {
props: ["value"],
methods: {
switched(isOn) {
this.$emit("input", isOn);
}
}
};
</script>
<style scoped>
.toggleContainer {
margin-top: 40%;
display: flex;
justify-content: center;
align-items: center;
}
#on,
#off {
width: 40px;
height: 20px;
border-radius: 20px;
background-color: lightgray;
padding: 2px;
text-align: center;
margin: 10px -5px;
cursor: pointer;
}
#on:hover,
#on.active {
background-color: lightgreen;
}
#off:hover,
#off.active {
background-color: lightcoral;
}
</style>
そして、あなたはそれをやった!🥳 「トグル」の下のテキストが「true」から「false」へ変化する方法を見てください.あなたはカスタムVueとトグルを作った.数分で、私はこのフレームワークについて好きです.そのようなコンポーネントを作るのは本当に速いです.
コードのどこかに立ち往生しているか、単に出力と対話したいなら、以下のCodesandboxプロジェクトを組み込みました.
次はどこですか。🤔
次のリソースを使用してカスタムコンポーネントを磨きます
Components Basics — Vue.js
Creating Custom Inputs With Vue.js by Joseph Zimmerman
Adding v-model Support to Custom Vue.js Components by Joshua Bemenderfer
Can you spot the difference? 😝
— Microsoft Developer UK (@msdevUK)
Image source: https://t.co/rhSnxZLNJa pic.twitter.com/MRmH1aKB9u
📫 毎週の開発者ニュースレターを購読してください📫
PS :今年から、Devコミュニティにここで書くことにしました.以前、私は媒体を書きました.誰かが私の記事を見たいならば.here 's私の媒体プロフィール.
Reference
この問題について(カスタムのトグルコンポーネントを作成します.js🎛), 我々は、より多くの情報をここで見つけました https://dev.to/vaibhavkhulbe/create-a-custom-toggle-component-in-vue-js-1ipiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol