何のVueから参照するには

1.基本命令:

  • V-ショー
  • V-IF
  • V-ELSE
  • V-用
  • V-バインドジェーン(:) VUEセッターゲッターメソッドが価値の変化を監視するために、プロセス・インスタンスに追加されます
  • ジェーンをV-クリック(@)

モニターウィンドウイベントを2.vue:

 おかげ  smallW 

 ウィンドウの変化に応じてキャンバスの幅を変更するには?

   ソリューションの1つの非常に共通:

  • 記録幅属性データの初期化時間の定義
    データ:{ 
        screenWidth:// document.body.clientWidthここでデフォルト値を与えることである(これは非常に重要です)
    }
  • VUEは、ローディングフック関数リサイズ方法の内側に取​​り付けられました
    ()搭載{ 
       =一定この
       window.onresize =()=> { 
            リターン(()=> { 
              window.screenWidth = document.body.clientWidth 
              that.screenWidth = window.screenWidth 
           })()
       } 
    }
  • のサイズを変更すると、変更を監視
    見る:{ 
        screenWidth(ヴァル){ 
              場合(!this.timer){ 
                this.screenWidth = valの
                this.timer =真
                この= LET 
                たsetTimeout(関数(){ 
                    。that.screenWidth =その$ store.state.canvasWidthの
                    コンソールを。ログ(that.screenWidth)
                    that.init()
                    that.timer = FALSE 
                }、400)
              } 
       } 
    }

   対処方法2:

    モニターを搭載した場合(速いが、一般のカップルが最初に選ぶだろう)

いくつかの言うことの3.vueソース:

  • ライフサイクル

 

  • VUEは何をするための新しい何かありますか?
  1. 新しい新しいオブジェクト
  2. メンバーオブジェクトのコンストラクタのプロトタイプに、この新しいオブジェクトポイントのプロトタイプ
  3. このコンストラクタは、新しいオブジェクトを指します
  4. 新しいオブジェクトを返します。

  拡張:新新しいオブジェクト、最後に何をしましたか?(インタビューの質問)

  1. 手動で新しいOBJを作成する代わりに、あなたが作成するのに役立ちnew'll
  2. プロトタイプコンストラクタ共通のない新しいOBJ __proto__ポイント、新しいあなたがそれを行うのに役立ちます。
  3. コンストラクタこのスコープは尖ったインスタンス自体になります。
  4. 代わりに手動で返すのに役立ちます新しい、新しいOBJを返します。
  5. new出来的实例的__proto__会指向构造函数的prototype。构造函数的方法,实例可以直接调用。
  •  vue实例化的构造函数在哪

     项目的 vue 文件夹下 core / instance / index.js ( 感谢 smallW

         

  • Vue 2.0 为什么选用 Flow 进行静态代码检查而不是直接使用 TypeScript?

      尤神回复

  • vue源码的三要素vm,compiler,watcher
  • 核心代码init初始化了什么?
  1. 生命周期initLifecycle
  2. 事件initEvents
  3. 初始化渲染initRender(vm)
  4. initInjections
  5. initState

  具体参考:vue.js源码解析四

  • Vue实现数据监听以及单向数据流的主要方式:
export function defineReactive(obj, key, val, customSetter, shallow) {
  const dep = new Dep();

  const property = Object.getOwnPropertyDescriptor(obj, key);
  if (property && property.configurable === false) {
    return;
  }

  // cater for pre-defined getter/setters
  const getter = property && property.get;
  const setter = property && property.set;
  if ((!getter || setter) && arguments.length === 2) {
    val = obj[key];
  }

  let childOb = !shallow && observe(val);
  Object.defineProperty(obj, key, {
    enumerable: true,
    configurable: true,
    get: function reactiveGetter() {
      const value = getter ? getter.call(obj) : val;
      if (Dep.target) {
        dep.depend();
        if (childOb) {
          childOb.dep.depend();
          if (Array.isArray(value)) {
            dependArray(value);
          }
        }
      }
      return value;
    },
    set: function reactiveSetter(newVal) {
      const value = getter ? getter.call(obj) : val;
      /* eslint-disable no-self-compare */
      if (newVal === value || newVal !== newVal && value !== value) {
        return;
      }
      /* eslint-enable no-self-compare */
      if (process.env.NODE_ENV !== 'production' && customSetter) {
        customSetter();
      }
      if (setter) {
        setter.call(obj, newVal);
      } else {
        val = newVal;
      }
      childOb = !shallow && observe(newVal);
      dep.notify();
    }
  });
}

4.vue源码中的神奇用法:

  1. 判断是否为 undefined
    let isUndef = function(v) {
        return v === undefined || v === null
    }
  2. 判断是否不为空
    let isDef = function(v) {
        return v !== undefined && v !== null
    } 
  3.  判断是否为原始数据类型
    let isPrimitive = function(value) {
      return typeof value === 'string' || typeof value === 'number' ||
      typeof value === 'symbol' || typeof value === 'boolean';
    }
  4. 判断是否为 Object 类型
    isPrimitive =関数(値){ましょう
      OBJを返す== nullの&& typeofをOBJ === 'オブジェクト'!。
    }
  5. 元のオブジェクトかどうかを確認
    CONST _toString = Object.prototype.toString; //オブジェクトが元のメソッドを継承
    
    isPlainObjectは=関数(OBJ)させ、{ 
        _toString.call(OBJ)=== '[オブジェクトのオブジェクト]'返します; 
    }
  6. オブジェクトが正であるかどうかを判断するには
    CONST _toString = Object.prototype.toStringは; //オブジェクトが元のメソッドを継承
    
    させisRegExp =関数(V)を{ 
        '[正規表現オブジェクト]' === _toString.call(V)を返します; 
    }

Vueの5.Reactなど、ジャンプの前に最初の迎撃ルートを行います。プラスの方法は、ページと統計コードに追加する必要があります。

おすすめ

転載: www.cnblogs.com/it-cuiyi/p/10955619.html