摸魚時間---閱讀vue文檔(一)

vue響應式、雙向數據綁定、prop&data屬性命名

  • vue在響應式原理解釋中提到:Object.defineProperty 是 ES5 中一個沒法 shim 的特性,這也就是 Vue 不支持 IE8 以及更低版本瀏覽器的緣由。
  • ES5中的shim特性指的是,讓一些低版本的瀏覽器支持ECMAScript5的一些新特性
  • 簡單敘述vue響應式原理:(完成數據驅動視圖)
    • vue 遞歸遍歷 data 中的數據,並使用 Object.defineProperty 方法將遍歷出的屬性轉換爲getter/setter(getter在調用屬性時觸發,setter在屬性值修改時觸發),每一個組件都有一個 wacther 實例,他會將在渲染中「接觸」過的屬性記錄爲依賴,經過 setter 監聽預示 wacther 從新渲染
    • 檢測數據變化注意點:因爲 vue 在初始化 data 時,將 data 中的屬性轉換爲 getter/setter ,因此屬性必須在 data 中才有響應式特性,這意味着已經建立的實例不容許再次添加根級別的屬性,由於它是沒有響應特性的,咱們能夠經過 Vue.set()/this.$set() 添加根級別屬性
  • v-model 在響應式上添加了 oninput 事件,二者結合實現數據雙向綁定。(實現視圖驅動數據)
  • HTML 中的特性名是大小寫不敏感的,因此瀏覽器會把全部大寫字符解釋爲小寫字符。這意味着當你使用 DOM 中的模板時,camelCase (駝峯命名法) 的 prop 名須要使用其等價的 kebab-case (短橫線分隔命名) 命名。---在prop中的屬性名儘可能不要帶大寫
  • _$ 開頭的屬性 不會 被 Vue 實例代理,由於它們可能和 Vue 內置的屬性、API 方法衝突。你能夠使用例如 vm.$data._property 的方式訪問這些屬性。---data 中的屬性名儘可能不要以 _$開頭,vue 實例不會代理
相關文章
相關標籤/搜索