検索
ホームページウェブフロントエンドVue.jsVue.js 学習 4: Vue コンポーネントの基本

Vue.js 学習 4: Vue コンポーネントの基本

Oct 16, 2020 pm 02:43 PM
vueコンポーネント

Vue.js チュートリアル今日のコラムでは、Vue コンポーネントの基本的な知識を紹介します。

Vue.js 学習 4: Vue コンポーネントの基本

このシリーズのこれまでのメモでは、非常に単純な単一ページの Web アプリケーションを紹介してきましたが、多くの場合、ページ上には単純なインタラクティブな要素がいくつかしかありませんでした。ただし、実際の運用環境では、Web アプリケーションのユーザー インターフェイスは複数の複雑なページで構成されることがよくあります。このとき、コードの再利用性を考慮する必要がありますが、この問題を解決するために、Vue.js フレームワークが提案する解決策は、まずユーザー インターフェイス上の要素を機能ごとに独立したコンポーネントに分割することです。ナビゲーション、コラム、掲示板、データフォーム、ユーザー登録フォーム、ユーザーログインインターフェースなどこのようにして、その後の作業では、レゴのおもちゃで遊ぶのと同じように、必要に応じてこれらのコンポーネントをさまざまな特定のアプリケーションに組み合わせることができます。全体として、コンポーネント システムは、Vue.js フレームワークを学習する際に習得しなければならない重要な概念です。以下、このノートでは、Vue.js フレームワークでコンポーネントを構築および使用する基本的な方法を体験するための一連の実験例を書きます。

すべての実験を開始する前に、次の一連の実験プロジェクトを保存するために、code ディレクトリに 00_test という名前のディレクトリを作成する必要があります。これらのプロジェクトは、以前は Vue コンポーネントの構築と使用を経験していましたが、実際のアプリケーション機能を持っていないため、##00 という番号を付けました。それでは、最初の実験を始めましょう!これを行うには、引き続き code/00_test ディレクトリに component_1 という名前の別の実験用ディレクトリを作成し、このディレクトリで npm install vue コマンドを実行する必要があります。 Vue.js フレームワークをインストールします。最後に、code/00_test/component_1 ディレクトリに index.htm という名前のファイルを作成し、次のコードを入力するだけです。

nbsp;html>


    <meta>
    <meta>
    <meta>
    <title>学习 vue 组件实验(1):组件注册</title>
`

    <p>
        <say-hello></say-hello>
        <welcome-you></welcome-you>
    </p>
    <script></script>
    <script>
        // 全局组件注册
        Vue.component(&#39;say-hello&#39;, {
            template: `<h1>你好, {{ you }}!`,
            props: [&#39;who&#39;],
            data: function() {
                return {
                    you: this.who
                };
            }
        });

        const app = new Vue({
            el: &#39;#app&#39;,
            // 局部组件注册
            components: {
                &#39;welcome-you&#39;: {
                    template: `<h2>欢迎你, {{ you }}!`,
                    props: [&#39;who&#39;],
                    data: function() {
                        return {
                            you: this.who
                        };
                    }
                }
            },
            data: {
                who: &#39;vue&#39;
            }
        });
    </script>

上記の実験では、 、

say-hello コンポーネントと welcome-you コンポーネントを 2 つの異なる方法で作成して登録しました。次に、これら 2 つのコンポーネントを使用して、これら 2 つのコンポーネントの使用方法を紹介します。 1 つ目は say-hello コンポーネントです。このコンポーネントは、Vue.component() メソッドを呼び出すことによってアプリケーションに作成および登録されます。このメソッドを使用して作成されたコンポーネントは通常、「として」と呼ばれます。グローバル コンポーネント」を呼び出す場合、呼び出し時に 2 つのパラメータを指定する必要があります:

  • 最初のパラメータは、コンポーネントの名前を指定するために使用される文字列オブジェクトである必要があります。これはカスタム タグ要素でもありますHTML ドキュメントで使用したいと考えています。HTML コードでは大文字と小文字が区別されないため、コンポーネントに名前を付けるときは小文字を使用することを個人的にお勧めします。単語の間に小文字を使用できます。

    - この区切り文字は区切り文字です。

  • 2 番目のパラメーターは、コンポーネントのさまざまな特定のパラメーターを設定するために使用される JavaScript オブジェクトである必要があります。ここでは、次の 3 つの最も基本的なパラメータが定義されています:

    • template: このパラメータは、コンポーネントの HTML テンプレート コードを指定するために使用される文字列オブジェクトです。このコード スニペットでは、対応する DOM オブジェクトにはルート ノードが 1 つだけ必要であり、ルート ノードを 1 つだけ持つことができると記載されています。このオブジェクトは、最終的な HTML ドキュメントのコンポーネントに対応するカスタム タグによって表されます。ここでは、 です。
    • props: このパラメータは文字列配列です。配列内の各要素は、コンポーネントに対応するカスタム タグのプロパティです。コンポーネントのユーザーは、##v- を渡すことができます。 bind ディレクティブは、このプロパティを特定のデータにバインドして、データをコンポーネントに転送できるようにします。たとえば、ここでは、<say-hello></say-hello> タグの v-bind ディレクティブを使用して、タグの who 属性を Vue にバインドしました。インスタンス オブジェクトを who データに追加し、それを say-hello コンポーネントに渡します。
    • data
    • : このパラメーターは、呼び出し元から取得するコンポーネント自体のデータ (ここでは you など) を設定するために使用される関数です。 ## データが割り当てられます。後者の場合、this リファレンスを使用して取得できます。 もちろん、上記の 3 つの基本パラメータに加えて、カスタム イベントやその処理関数など、コンポーネントにさらに多くのパラメータを設定することもできます。これについては後続のプログラムで記述します。 . 経験で示される。

    下面,我们再来看welcome-you组件的构建。如你所见,该组件是在 vue 实例的components成员中构建并注册到应用程序中的,使用该方法创建的组件通常被称之为"局部组件"(它与全局组件的区别是,全局组件会在程序运行时全部加载,而局部组件只会在被实际用到时加载) 。该components成员的值也是一个 JSON 格式的数据对象,该数据对象中的每一个成员都是一个局部组件,这些组件采用键/值对的方式来定义,键对应的是组件的名称,值对应的是组件参数的设置。当然了,由于局部组件的命名规则与具体参数的设置方法都与全局对象一致,这里就不再重复说明了。

    需要注意的是,第一个实验项目的编写方式将 HTML 代码、Vue 实例的构建代码以及组件的构建代码糅合在了一起,这对于提高代码的可复用性这个目的来说,显然是不行的。要想解决这个问题,我们可以利用 ES6 规范新增的模块规则将这三部分代码隔离开来。为了体验这种用法,我继续开始了第二个实验。具体做法就是在code/00_test目录中再创建一个名为component_2的实验目录,并在该目录下执行npm install vue命令来安装 Vue.js 框架。最后,我只需在code/00_test/component_2目录下创建一个名为index.htm的文件,并输入如下代码:

    nbsp;html>
    
    
        <meta>
        <script></script>
        <script></script>
        <title>学习 vue 组件实验(2):以 ES6 模块的方式注册组件</title>
    
    
        <p>
            <say-hello></say-hello>
        </p>
    
    

    在上述 HTML 代码中,我们在照常引入 vue.js 框架之后,使用模块的方式引入了main.js脚本文件,最好在<p id="app"></p>标签中使用了后面将要定义的组件所对应的自定义标签。接下来,我只需要在相同的目录下创建一个名为main.js的 JavaScript 脚本文件,并在其中输入如下代码:

    // import Vue from './node_modules/vue/dist/vue.js';
    import sayhello from './sayhello.js';
    
    const app = new Vue({
        el: '#app',
        components: {
            'say-hello': sayhello
        },
        data: {
            who:'vue'
        }
    });

    在上述 JavaScript 代码中,我首先使用了 ES6 新增的import-from语句导入了后续要在sayhello.js文件中构建的组件,然后在构建 Vue 实例时将其注册成了局部组件。最后,我只需在同一目录下再创建这个sayhello.js脚本文件,并在其中输入如下代码:

    const tpl = `
        <p>
            </p><h1 id="你好-you">你好, {{ you }}!</h1>
            <input>
        
    `;
    
    const sayhello = {
        template: tpl,
        props : ['who'],
        data : function() {
            return {
                you: this.who
            }
        }
    };
    
    export default sayhello;

    在这部分代码中,我先定义了一个局部组件,然后再使用 ES6 新增的export default语句将其导出为模块。当然,考虑到各种 Web 浏览器对 ES6 规范的实际支持情况,以及 Vue.js 框架本身使用的是 CommonJS 模块规范,所以上述实验依然可能不是编写 Vue.js 项目的最佳方式,其中可能还需要配置 babel 和 webpack 这样的转译和构建工具来辅助。在下一篇笔记中,我就来记录如何使用这些工具来构建具体的 vue 应用程序。

    相关学习推荐:js视频教程

以上がVue.js 学習 4: Vue コンポーネントの基本の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcnblogsで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Vue.js:Web開発におけるその役割を定義しますVue.js:Web開発におけるその役割を定義しますApr 18, 2025 am 12:07 AM

Web開発におけるVue.jsの役割は、開発プロセスを簡素化し、効率を向上させるプログレッシブJavaScriptフレームワークとして機能することです。 1)開発者は、レスポンシブデータのバインディングとコンポーネント開発を通じてビジネスロジックに集中できるようになります。 2)VUE.JSの作業原則は、パフォーマンスを最適化するためにレスポンシブシステムと仮想DOMに依存しています。 3)実際のプロジェクトでは、VUEXを使用してグローバルな状態を管理し、データの応答性を最適化することが一般的な慣行です。

Vue.jsの理解:主にフロントエンドフレームワークVue.jsの理解:主にフロントエンドフレームワークApr 17, 2025 am 12:20 AM

Vue.jsは、2014年にYou YuxiがリリースしたプログレッシブJavaScriptフレームワークで、ユーザーインターフェイスを構築します。その中心的な利点には、次のものが含まれます。1。レスポンシブデータバインディング、データ変更の自動更新ビュー。 2。コンポーネントの開発では、UIは独立した再利用可能なコンポーネントに分割できます。

Netflixのフロントエンド:React(またはVue)の例とアプリケーションNetflixのフロントエンド:React(またはVue)の例とアプリケーションApr 16, 2025 am 12:08 AM

Netflixは、Reactをフロントエンドフレームワークとして使用します。 1)Reactのコンポーネント開発モデルと強力なエコシステムが、Netflixがそれを選択した主な理由です。 2)コンポーネント化により、Netflixは複雑なインターフェイスをビデオプレーヤー、推奨リスト、ユーザーコメントなどの管理可能なチャンクに分割します。 3)Reactの仮想DOMおよびコンポーネントライフサイクルは、レンダリング効率とユーザーインタラクション管理を最適化します。

フロントエンドの風景:Netflixが選択にアプローチした方法フロントエンドの風景:Netflixが選択にアプローチした方法Apr 15, 2025 am 12:13 AM

Netflixのフロントエンドテクノロジーでの選択は、主にパフォーマンスの最適化、スケーラビリティ、ユーザーエクスペリエンスの3つの側面に焦点を当てています。 1。パフォーマンスの最適化:Netflixは、Reactをメインフレームワークとして選択し、SpeedCurveやBoomerangなどのツールを開発して、ユーザーエクスペリエンスを監視および最適化しました。 2。スケーラビリティ:マイクロフロントエンドアーキテクチャを採用し、アプリケーションを独立したモジュールに分割し、開発効率とシステムのスケーラビリティを改善します。 3.ユーザーエクスペリエンス:Netflixは、Material-UIコンポーネントライブラリを使用して、A/Bテストとユーザーフィードバックを介してインターフェイスを継続的に最適化して、一貫性と美学を確保します。

React vs. Vue:Netflixはどのフレームワークを使用していますか?React vs. Vue:Netflixはどのフレームワークを使用していますか?Apr 14, 2025 am 12:19 AM

netflixusesaCustomframeworkは、「ギボン」ビルトンリアクト、notreactorvuedirectly.1)チームエクスペリエンス:seice basedonfamperivity.2)projectomplerprojects:vueforsplerprojects、racefforcomplexones.3)customeforsneeds:reactofforsmorefloficailie.

フレームワークの選択:Netflixの決定を推進するものは何ですか?フレームワークの選択:Netflixの決定を推進するものは何ですか?Apr 13, 2025 am 12:05 AM

Netflixは、主に、パフォーマンス、スケーラビリティ、開発効率、エコシステム、技術的な負債、およびフレームワーク選択におけるメンテナンスコストを考慮しています。 1。パフォーマンスとスケーラビリティ:JavaとSpringbootが選択され、大規模なデータと高い同時リクエストを効率的に処理します。 2。開発効率とエコシステム:Reactを使用して、フロントエンド開発効率を向上させ、その豊富なエコシステムを利用します。 3.技術的な負債とメンテナンスコスト:node.jsを選択してマイクロサービスを構築して、メンテナンスコストと技術的債務を削減します。

Netflixのフロントエンドの反応、Vue、および未来Netflixのフロントエンドの反応、Vue、および未来Apr 12, 2025 am 12:12 AM

Netflixは、主にReactをフロントエンドフレームワークとして使用し、特定の機能のためにVUEによって補足されます。 1)Reactのコンポーネント化と仮想DOMは、Netflixアプリケーションのパフォーマンスと開発効率を向上させます。 2)VueはNetflixの内部ツールと小規模プロジェクトで使用されており、その柔軟性と使いやすさが重要です。

フロントエンドのvue.js:実際のアプリケーションと例フロントエンドのvue.js:実際のアプリケーションと例Apr 11, 2025 am 12:12 AM

Vue.jsは、複雑なユーザーインターフェイスを構築するのに適した進歩的なJavaScriptフレームワークです。 1)そのコア概念には、レスポンシブデータ、コンポーネント、仮想DOMが含まれます。 2)実際のアプリケーションでは、TODOアプリケーションを構築し、Vuerouterを統合することで実証できます。 3)デバッグするときは、vuedevtools and Console.logを使用することをお勧めします。 4)パフォーマンスの最適化は、V-IF/V-Show、リストレンダリング最適化、コンポーネントの非同期負荷などを通じて達成できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、