1、VUEのライフサイクル
初期化:
beforeCreate:一般的に無益、マウントしていないデータは、DOMは表示されません
作成:データがマウントされていますが、DOMがレンダリングされていない、いくつかの非同期操作を行うことができますフック関数、および内部のこのフック関数で実行されているフック関数に影響を与えることなく、データを変更します。
beforeMounte:この関数は、作成したようにDOMは、レンダリングされようとしているが、まだレンダリングされていない表し、いくつかの非同期操作を行います
マウント:データがマウントされている、本当のDOMが出てレンダリングしました。
操作:
BeforeUpdate:データの変更は、この機能を実行する場合は、機能が変更前のデータを取得することで、内部のデータを変更しないでください、それ以外の場合は、無限ループが発生します
更新:データの再レンダリングするときに、この機能は、新しいDOM、DOMは違いを比較した後、仮想コントラストに追いつく、その後、実際のDOM、DOMをレンダリングするか生成する、更新後のデータは、時間をトリガしますあなたは本当のDOMを取得することができ、このフック関数インチ
ときに破壊:
beforeDestroy:破壊の前に、いくつかの是正措置を行います
リッスンが削除され、双方向のデータバインディングが、それでも実際のDOMに存在します。破壊されました
2. MVVMとは何ですか?そして、MVMの違い。
MVVMは、簡略化されたユーザーインターフェース、イベント駆動型プログラミングモードであります
ビューは、層の図であり、ユーザーとの対話層は、主にHTMLとCSSで構成されています
モデルは、層の図であり、様々なロジックや処理データ操作は終了バック指し
これは、予想される表示層を使用してモデルを生成するために、表示データに沿って、二次包装を行い、モデルデータ変換処理への現像剤の後端に前端から取得し、この層に、ビューモデルのビュー・データ層を指します。
主にMVMのフィードバックを解決するためのMVVMでも問題はありません。
最終的には3,90完全なライフサイクル機能とは何ですか?
beforeCreate:基本的には何もできない、VUEデータが内部に注入されていない、データ情報を取得していない、いくつかの前処理機能を実行します、
作成:データを得ることができ、フック関数を呼び出していないデータを変更するには、フック関数を実行します
beforeMount:ケースには、HTMLページを生成されていません。
マウント:初期化フェーズの最後のフック関数は、あなたが本当のDOMを操作することができます
その後、最初の呼び出しのBeforeUpdate、およびレンダリング後にトリガデータの更新を表示し、データの更新が完了すると、更新され実行されます
4.どのようにパッケージアセンブリにおけるVUE?どのようなコンポーネントが、なぜアセンブリをパッケージ化する必要がありますか?なぜコンポーネントのデータは、関数のですか?
なぜパッケージアセンブリ?
主には、デカップリングコードの再利用率を改善することです。
コンポーネントは何ですか?
ライブラリ同等のコンポーネントは、いくつかは、コードの異なるパッケージ要件におけるプロジェクトやプロジェクト内で多重化することができます。
なぜデータ関数の成分であります
各返されたインスタンスが返されたオブジェクトの別のコピーを維持することができましょう。
(ヤンシェン)
モジュールとは何ですか?
これは、ビジネス・ロジック・ブロック、パッケージ要件の機能ロジック内の項目の同じ種類に対応しています。
モジュラー開発:機能分離に従い、JSファイルで、サーバからのニーズに応じて異なるファイルの導入、
開発コンポーネント:単一ポータブル、すなわち、「負荷と共に使用されるように」とは、コンポーネントのための基本条件の複合体を調製するために必要としない、非必須宣言されています
そのaxios 5.何?
axiosは、主にバックグラウンドにリクエストを送信するために使用されます。サポート約束
axiosサポート同時要求は、同時に複数のインタフェースを要求することができます
axiosはインターセプタを提供します。
クロスサイトリクエストフォージェリを防止することが可能axios。これは、フィッシングサイトであります
axiosインターセプタ:
応答傍受傍受にREQUEST要求と応答
リクエスト傍受リクエスト:リクエストを送信する前に統一された治療法。たとえば、次のリクエストヘッダのヘッダを設定します
インターセプトを対応する応答:次の操作はレスポンスのコードに従って行われます。例:現在のトークンの有効期限が切れるのために、インタフェース401は、無許可戻りました。その後、我々は、ログイン画面にジャンプします
Axios / FETCHは約束に基づいています。後者は主のコールバック形式を使用
XHRをフェッチし、新しい構文で、デフォルトではクッキーを渡しません。要求されたよりも少ないの進行状況を監視もあります
6.何VUEXこと?どのように使用するには?その際に使用しますか?
vuexは、主に、複数のグループ間で共有状態の問題を解決するために、専門的なVUE構築された状態の管理ツールです。強調その集中管理(アセンブリと倉庫の関係に構成部品およびアセンブリの間の関係)
Vuexコアは、前記状態(収納状態)、変異(同期状態の変化)、アクション(非同期伝送要求、データを取得する)、ゲッター(状態前に新しい状態に従って分布)、モジュール(モジュール分割)
新しい状態データがゲッターの内部状態に基づいて、新たな状態で配布されたポスト、アクション非同期要求にデータを送信し、データの同期を変化する変異で
アプリケーション:ショッピングカートのデータ共有、登録にログイン
7、VUE使用手順
V-IF条件の描画命令
結合特性のV-bindコマンド
V-の指示のモニター・イベント
V-のための命令ループをレンダリング
V-テキストレンダリングテキスト
8、ナビゲーションフック?
VURルータ
スパ単一ページのアプリケーション:これはルートに対応する列に係るアドレス変化検出スイッチの形成を意味
言い換えれば、プロジェクトのみ完全なHTMLページ。残りは、HTMLの要素であるページ間のジャンプを更新し、ユーザーエクスペリエンスを向上させるために、送信HTTPリクエストを減らす、コンポーネント間で切り替えています
Jsの原理は、URLの変更を認識され、この時点で、あなたが動的に、コンテンツの次のページが現在のページにマウントするために、JSを使用して、現在のページの内容を削除することができ、このルートは、バックエンドをする時間はありませんが、フロントエンドが完了しました、最終的に、表示されるページを決定望ましくない、表示の必要性を取り除く、このプロセスは、単一ページのアプリケーションです。
利点がある:良いインタラクティブな体験、良いフロントの分離および後端モード、サーバー上の圧力を低下させる、コードの共通セット。
履歴ハッシュ
宣言型ナビゲーション:ルータリンク
歴史:このモードでは、直接URLアドレスを変更します、我々は、バックエンドのために設定する必要があります。
ハッシュ:このモードでは、それによってイベントなhashchangeブラウザをトリガー、URLアドレスバーの後ろにパス識別子#を変更し、現在のパス識別子location.hashを介して取得、ルート操作でジャンプを検出します。
ルート、セカンダリルート?子供
この$のrouter.pushへのルータのリンク():二つの方法で、ルーティングをジャンプします。
ガードインターセプタをルーティング
インターセプター:要求と要求インターセプタインターセプタに対する応答
傍受REQUEST要求:要求を送信する前に、同じ処理
要求ヘッダ、アプリケーションのバージョン番号の端末種別設定ヘッダー:たとえば
式を遮断することに応答して応答:時々 、式に従って応答します次のステップに状態
例えば:現在のトークンの有効期限が切れるように、インターフェースは、不正401は、我々は再ログインをして作業する必要が戻りました。
ナビゲーションルーティングフックはVUEのVUE-ルータです
カテゴリー:
起動時にスイッチをルーティングbeforeEachコール
から離れてスイッチをルーティングするときafterEachと呼ばれる
単一のルーティングにローカル
beforeRouteEnterの
フック関数コンポーネント
beforeRouterEnter
beforeRouterUpdata
beforeRouteLeave
:3つの属性
ターゲットオブジェクトに入ろうとする
から、ナビゲーション・ターゲットを残すようにナビゲーションが
隣にありこの関数は、次のステップに決意を呼び出します
9、Vモデルは、それは何ですか?
結合双方向のデータの形式のための手順
2つの操作があります。
1、V-バインドプロパティの値をバインドします
2、V-上のイベントにバインドされた現在の要素に
10、swiperプラグイン背景からのデータ取得は、何ら問題は、CSSコードは問題ないものではないが、画像を解決する方法、移動しませんでした。
主にswiperは、事前に初期化されているため、そのデータはまだ完全には出ていません。
この。$ nextTick()主な機能は、DOMが再レンダリングイニシエータが完了した後に行われるようにデータを変更することです。
11、キープアライブ
あなたが繰り返しても過言によるパフォーマンスの問題を回避するために、国家の形成を維持したいので、これらのコンポーネントを切り替えるとき
原理:作成され、キャッシュに仮想DOMノードをキャッシュする必要があります、その後、読者ときに名前に従って行います。
ルート遅延ロード:
あなたはオンデマンドでロードされ、ロードする必要があります場合もございます。
単一ページのアプリケーションの問題は、すべてのページは、JSファイルを導入し、これは、すべてのタイムスイッチのコンポーネントを呼び出しますJSのJS wepback詰め時間を生成する必要があるということです
シングルページはJSのすべてを紹介し、ログには、すべてのjs、とても遅いロードのホームページをご紹介します。解決策は、ルート遅延ロードにあります。
12、1ページのアプリケーション
原理は、コンポーネント間で切り替えるためにルーティング・アドレス・バー組立体に対応する変化を検出することです。
プロジェクトが唯一の完全なHTMLページ、HTMLは、ジャンプページのみパーシャルリフレッシュは、すべてのリソースをリロードしていないされているコンポーネントの残りの部分で、コンポーネント間の間の高速スイッチングは、トランジションアニメーションを実現するのが比較的容易です。速度が速いと、ページジャンプは、あなたは、このように、HTTP要求の多くを保存し、HTMLファイル要求を行う必要はありませんたびに、私たちのスイッチページを送信されます。
利点:良いインタラクティブな体験、前端と後端には、ユーティリティ・プログラム・コードのバックエンドサーバーへの圧力を軽減、うまく分離モードを働きます
欠点:SEOより多くのではない前方と後方、困難な管理ページ、最初のロード時間がかかります。
13. VUE-ローダーとは何ですか?
VUE-loderはVUE jsのモードを変換するローダアセンブリです。
なぜ、この変換モジュール?
データの一部は、動的に3つのラベル用に最適化され、レンダリングすることができます
テンプレート仮想書き込みDOM
スクリプトES6文法を書きます
デフォルトのスタイルは、スコープを提供し、文法をSCSSすることができます
そして、開発段階では、熱ローダーを提供します
14.何スロットいますか?どのように使用するには?
スロット:名前のスロット、匿名のスロット、スロットスコープ
15.仮想DOMとは何ですか?キーの価値との関係?
DOMは、JS使用して記録されているオブジェクトは、ノードDOMのコピーは、第一差分アルゴリズムは、仮想DOMを実行するとき、最小差を計算し、その後、実際のDOMを変更する変更DOM有します。
あまりにもDOMを操作する伝統的な方法だったときに、ブラウザは、プロセスが非効率的で、かつ非常にシンプルかつ効率的であるjavascriot仮想DOMのjavascritオブジェクト、および操作で表現されている間DOMツリーを構築する最初から最後まで実行を開始します。層のマッピング関係を持つバーチャルとリアルのDOM DOM、多くの場所は、仮想DOM、DOM最後に更新され、それによって、パフォーマンスの向上を動作させるために、DOMを操作する必要があります。
DOMの仮想短所:
1、コードより、より大きな体積
図2に示すように、メモリ使用量が増加
図3は、仮想少量が、より高いコストを使用して、単一のDOM DOMの変更は、直接、本物の速いDOMを変更することをお勧めします
16、どのようにVUEのMVVMフレームワークを理解するには?
簡略化されたユーザインタフェースは、イベント駆動型プログラミング式です。
ユーザーとの対話層は、主にHTMLとCSSを構築するように、ビュー層は、ビューの層であり、
moedl階層データモデルレイヤは、様々な論理は、端部処理およびデータ操作をバック指し
viewmodel層は、データ層の図です。この層では、表示データに合わせて変換処理の後端から取得した現像モデルデータの前端から、第2のパッケージは、予想されるビュー層を使用してモデルを生成します。
結合双方向のデータ:
ビューの変更がモデルの層を更新するとき、層を変化させたときのモデルビューを更新します
結合VUE双方向のデータ:
VUEの方法加入者データハイジャック&解除モード:VMの作成にVUEは、インスタンスの数で構成され、これらのデータ処理をobject.defineproperty使用し、データが処理されると、これらのためであろうデータは、ゲッターとセッターメソッドを追加データが変更された場合、それはデータのセッターメソッドをトリガすることにより、VMのウォッチャー方法をトリガし、データを変更し、さらにVMビューのビューをレンダリングします。
成分である17、アクティブクラスのプロパティ。
プロパティルーター・リンクアセンブリVUE-ルータモジュールが提供します
アクティブ・クラスで使用されるVUE-ルータに2つの方法があります。
図1に示すように、直接ルーティング構成でlinkActiveClass JSファイル
2は、ルータリンクにアクティブクラスで書かれています
そのSCSS 18.何?
SCSSは、プリコンパイラです。
19、VUEサードパーティ製プラグイン:
MIUI-UI-UI要素vuex
そのaxios 20.何?
axiosは、リクエストを送信するために使用されます。2種類をGETとPOST
関数が約束オブジェクトを返す取得、get関数を定義することによって、彼は、2つのパラメータ、私たちの要求に対処したURLを示すために、最初のパラメータを有し、第2のパラメータは、我々が運ぶ必要がリクエストパラメータである、ときaxios要求:取得サーバーは、私たちに成功を返すときに我々が拒否したときにreslove戻り値が要求エラーに返されているエラー値は、最終的にはエクスポート機能によってスローされます
ポスト:getメソッドの方法と一致しますが、リクエストヘッダを設定する必要があります。
21は、理解することを約束します
約束は、文法的に約束からのオブジェクトである、彼はニュースの非同期操作から得ることができる非同期関数のソリューションである待機状態保留中の3つの状態が、約束、国家の成功を満たし、変更後に失敗した状態のステータスを拒否し、彼らはしません変更後、約束のインスタンスを作成するために、彼はすぐに実行され、約束のAPIは二つの方法があります。解決と拒否し、決意が成功した後、コールバック関数を表し、それは結果が2つのプロトタイプの失敗後に返さ表し拒否放電法:.then .catch方法と、例えば、要求インタフェースは、エラー例外を捕捉することによってデータを取得.then .catch
22、カスタム命令方法:
vue.directive
钩子:バインド、挿入、更新、バインド解除
パラメータ:エル、結合、vノード
23間の通信、VUE
息子:小道具とのサブアセンブリは、親コンポーネントから値の転送を受け入れます
子供連れの親:親コンポーネントの寿命データ、自分自身を変更する方法を記述し、サブアセンブリに渡されたが、その後、クリックイベントを処理するためにコンポーネントを追加します
兄弟間の値で:
チェーンREF:親要素のサブアセンブリはまた息子、兄弟間の伝統的な価値をすることができ、あなたは親コンポーネントのプロパティのREF $によってサブアセンブリの値を得ることができるように、サブアセンブリ上のref属性を定義し、伝統的な価値を与えます
even.busイベントバス:単純なシナリオは、VUEイベントバスとして空のインスタンスと、通信が兄弟の間で達成することができます。