vueでよく見られるポイント

2436 ワード

1、計算属性と方法の違い
      :https://cn.vuejs.org/v2/guide/computed.html

2.親コンポーネントが子コンポーネントインスタンスにアクセスする方法
  • vm.$children-順序を保証しない、応答式の
  • でもない
  • vm. s l o t s--スロットによって配布されたコンテンツにアクセスします.各名前付きスロットには、対応する属性(例えば、s l o t="f o o"のコンテンツは、vm.slotsでスロットによって配布されたコンテンツにアクセスするために使用されます.各名前付きスロットには、対応する属性(例えば、slot="foo"のコンテンツはvm.slotsでスロットによって配布されたコンテンツにアクセスするために使用されます.各名前付きスロットには、対応する属性(例えば、slot="foo"の内容はvmになります.slots.fooで見つかりました).defaultプロパティには、名前付きスロットに含まれていないすべてのノードが含まれます.
  • vm.$refs:refプロパティに登録されたすべてのDOM要素とコンポーネントインスタンスを持つオブジェクト.

  • 3、Vueの双方向バインディング原理Vueはこのようなデータの双方向バインディングの効果を実現するために、三大モジュールが必要である:
  • Observer:データオブジェクトのすべての属性をリスニングすることができ、変更があれば最新値を取得し、購読者
  • に通知することができる.
  • Compile:各要素ノードの命令をスキャンおよび解析し、命令テンプレートに従ってデータを置換し、対応する更新関数
  • をバインドする.
  • Watcher:ObserverとCompileを接続する橋渡しとして、各属性の変動の通知を購読して受け取ることができ、命令バインディングの対応するコールバック関数を実行して、ビューを更新します.

  • 4、Object.defineProperty()はデータハイジャックにどんな弊害がありますか?
  • この方法は配列のサポートがあまりよくありません.例えば配列arrは、この配列に対してObjectを通過する.defineProperty()メソッドsetter,getter関数を設定します.arr全体に値を割り当てるとsetter関数(arr=[1,3]など)がトリガーされます.arrのある下付きスケールに値付け操作を行うと、setter関数、例えばarr[1]=3はトリガーされず、トリガーされません.
  • このような問題を解決するために、公式フレームワークは配列のいくつかの方法を書き換えた.push()、pop()、shift()、unshift()、splice()、sort()、reverse()7でメソッドを書き換えた.

  • 5、vue-routerにおけるhashとhistoryモードの原理
  • hashモード:デフォルトhashモード--URLのhashを使用して完全なURLをシミュレートし、URLが変更されるとページは再ロードされません.hashモードの背後にある原理はonhashchangeイベントであり、windowオブジェクト上でこのイベントを傍受することができる:window.onhashchange = function(event){ console.log(event.oldURL, event.newURL); }
  • historyモード:このモードはhistoryを十分に利用する.pushState APIは、ページを再ロードすることなくURLジャンプを完了します.URLは通常のurlのようなもので、例えばhttp://yoursite.com/user/idバックグラウンド構成のサポートも必要です.私たちのアプリケーションは1ページのクライアントアプリケーションなので、バックグラウンドに正しい構成がなければ、ユーザーがブラウザに直接アクセスするとhttp://oursite.com/user/id404が返されます.だから、サービス側にすべての状況をカバーする候補リソースを追加します.URLが静的リソースに一致しない場合は、同じindexを返すべきです.htmlページ、このページはあなたのapp依存のページです.関連イベント:pushState,replaceState
  • hashモードでは、フロントエンドルーティングは#中の情報を変更するが、ブラウザリクエスト時にはそれを連れて遊ばないので問題ない.しかしhistoryではpathを自由に変更することができ、リフレッシュ時にサーバに対応する応答やリソースがなければ、分ごとに404がブラシされます.

  • 6、nexttickは何をしていますか.
  • は、次回のDOM更新サイクルが終了した後、遅延コールバックを実行する.データを修正した直後にこの方法を用いて,更新後のDOMを取得する.データの変更は同期タスクであり、DOMの更新は非同期タスクである.
  • mountedは、すべてのサブコンポーネントが一緒にマウントされることを約束しないことに注意してください.ビュー全体がレンダリングされるまで待つにはvm.$nexttick置換mounted
  • 7、axiosはいくつかのキャッシュの最適化の機能をして、keyはどのように定義します~~~