Vueベースコンポーネント
5307 ワード
この文章は個人の学習ノートにしか使われていません(青の後、私はむやみに書くことができます)
一、コンポーネント化の利点TodoListのtodo itemがますます多くなると、私たちはそれを1つのコンポーネントに分割して開発し、維持しなければならない.コンポーネントの出現は、Vueインスタンスのコード量を分割するために、異なるコンポーネントで異なる機能モジュールに分割し、完全なページにつなぎ合わせましょう.将来どのような機能が必要なのか、対応するコンポーネントを調整すればよい.
現在私が理解できるコンポーネント化開発の利点は以下の通りです.
1)開発効率の向上.2)再利用しやすい.3)保守性の向上.公式ドキュメントの図を挿入します.
二、登録コンポーネントは足場で選択して使用します.vue単一ファイルを開発します.ひとつvueファイルには完全なtemplate(html)、script、styleラベルがあります.
.vueの単一ファイルを入手できます.
1)完全構文ハイライト2)CommonJSモジュール3)コンポーネント役割ドメインのCSS(<span class="md-tag">)1.まずTodoListを作成する.vueファイルはcomponentsフォルダの下にあります.作成後、ルートコンポーネントでAppする必要があります.vueにはTodoListが導入する.vueコンポーネントを登録します.//インポートしたコンポーネントはcomponentsに入れる必要があります
導入に成功したかどうかを確認します.
2.次に、前のliタグの内容をTodoListに移植します.vueで.親子コンポーネント間の通行はpropsと$emitを使用します.
サブコンポーネントはpropsを使用して親コンポーネントから送信された値を受信します.サブコンポーネントは$emitを使用してイベントとデータを送信します.サブコンポーネントデータが必要な親コンポーネントカスタムイベントを追加して、サブコンポーネント1をリスニングします.親コンポーネント(App.vue)のtodo-itemでデータをカスタム属性にバインドします.content(itemの文字)::time(itemの作成時間)::index(配列の下付き)、イベント@delectリスニングサブコンポーネントのイベントを追加します.
一、コンポーネント化の利点TodoListのtodo itemがますます多くなると、私たちはそれを1つのコンポーネントに分割して開発し、維持しなければならない.コンポーネントの出現は、Vueインスタンスのコード量を分割するために、異なるコンポーネントで異なる機能モジュールに分割し、完全なページにつなぎ合わせましょう.将来どのような機能が必要なのか、対応するコンポーネントを調整すればよい.
現在私が理解できるコンポーネント化開発の利点は以下の通りです.
1)開発効率の向上.2)再利用しやすい.3)保守性の向上.公式ドキュメントの図を挿入します.
二、登録コンポーネントは足場で選択して使用します.vue単一ファイルを開発します.ひとつvueファイルには完全なtemplate(html)、script、styleラベルがあります.
.vueの単一ファイルを入手できます.
1)完全構文ハイライト2)CommonJSモジュール3)コンポーネント役割ドメインのCSS(<span class="md-tag">)1.まずTodoListを作成する.vueファイルはcomponentsフォルダの下にあります.作成後、ルートコンポーネントでAppする必要があります.vueにはTodoListが導入する.vueコンポーネントを登録します.//インポートしたコンポーネントはcomponentsに入れる必要があります
導入に成功したかどうかを確認します.
2.次に、前のliタグの内容をTodoListに移植します.vueで.親子コンポーネント間の通行はpropsと$emitを使用します.
サブコンポーネントはpropsを使用して親コンポーネントから送信された値を受信します.サブコンポーネントは$emitを使用してイベントとデータを送信します.サブコンポーネントデータが必要な親コンポーネントカスタムイベントを追加して、サブコンポーネント1をリスニングします.親コンポーネント(App.vue)のtodo-itemでデータをカスタム属性にバインドします.content(itemの文字)::time(itemの作成時間)::index(配列の下付き)、イベント@delectリスニングサブコンポーネントのイベントを追加します.
2)サブアセンブリ(TodoList.vue)は、propsを介して親アセンブリからのデータレンダリングページを受信する.クリックイベント呼び出しメソッドhandleDelectメソッドを作成し、$emitを使用して下付きindexを送信します(親コンポーネントは対応するitemを削除するために受信します)
{{content}}
:{{time}}
export default </span>{<span style="color: #ff0000;">
props</span>:<span style="color: #0000ff;"> ["content", "time", "index"],
methods: {
handleDelect() {
this.$emit("delect", this.index)</span>;
}<span style="color: #800000;">
}
};
//
// :
//App.vue
// import ( ) from (" ")
import todolist from "./components/TodoList.vue";
export default </span>{<span style="color: #ff0000;">
name</span>:<span style="color: #0000ff;"> "app",
// (" "() : ( )
components: {
"todo-item": todolist
</span>}<span style="color: #800000;">,
data() </span>{<span style="color: #ff0000;">
return {
inputValue</span>:<span style="color: #0000ff;"> "",
list: []
</span>}<span style="color: #800000;">;
},
methods: </span>{<span style="color: #ff0000;">
handleSubmit() {
if (this.inputValue != "") {
this.list.push({
text</span>:<span style="color: #0000ff;"> this.inputValue,
time: new Date().toLocaleString()
</span>}<span style="color: #800000;">);
this.inputValue = "";
}
},
handleDelect(index) </span>{<span style="color: #ff0000;">
this.list.splice(index, 1);
</span>}<span style="color: #800000;">
}
};
TodoList.vue
{{content}}
:{{time}}
export default </span>{<span style="color: #ff0000;">
props</span>:<span style="color: #0000ff;"> ["content", "time", "index"],
methods: {
handleDelect() {
this.$emit("delect", this.index)</span>;
}<span style="color: #800000;">
}
};
間違いは多いかもしれませんが、私はまだhhhhを見ていません.