91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解vue實例的選項

發布時間:2020-07-17 13:55:13 來源:億速云 閱讀:132 作者:小豬 欄目:web開發

這篇文章主要講解了詳解vue實例的選項,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

一、數據

API:https://cn.vuejs.org/v2/api/#%E9%80%89%E9%A1%B9-%E6%95%B0%E6%8D%AE

1. data

類型:Object | Function

限制:組件的定義只接受 function

詳細:Vue 實例的數據對象。Vue 將會遞歸將 data 的屬性轉換為 getter/setter,從而讓 data 的屬性能夠響應數據變化。對象必須是純粹的對象 (含有零個或多個的 key/value 對)。當一個組件被定義,data 必須聲明為返回一個初始數據對象的函數,因為組件可能被用來創建多個實例。如果 data 仍然是一個純粹的對象,則所有的實例將共享引用同一個數據對象!通過提供 data 函數,每次創建一個新實例后,我們能夠調用 data 函數,從而返回初始數據的一個全新副本數據對象。

var data = { a: 1 }

// 直接創建一個實例
var vm = new Vue({
 data: data
})
vm.a // => 1
vm.$data === data // => true

// Vue.extend() 中 data 必須是函數
var Component = Vue.extend({
 data: function () {
  return { a: 1 }
 }
})

2. computed

類型:{ [key: string]: Function | { get: Function, set: Function } }

詳細:計算屬性將被混入到 Vue 實例中。所有 getter 和 setter 的 this 上下文自動地綁定為 Vue 實例。計算屬性的結果會被緩存,除非依賴的響應式屬性變化才會重新計算。注意,如果某個依賴 (比如非響應式屬性) 在該實例范疇之外,則計算屬性是不會被更新的。

var vm = new Vue({
 data: { a: 1 },
 computed: {
  // 僅讀取
  aDouble: function () {
   return this.a * 2
  },
  // 讀取和設置
  aPlus: {
   get: function () {
    return this.a + 1
   },
   set: function (v) {
    this.a = v - 1
   }
  }
 }
})
vm.aPlus  // => 2
vm.aPlus = 3
vm.a    // => 2
vm.aDouble // => 4

3. methods

類型:{ [key: string]: Function }

詳細:methods 將被混入到 Vue 實例中。可以直接通過 VM 實例訪問這些方法,或者在指令表達式中使用。方法中的 this 自動綁定為 Vue 實例。

var vm = new Vue({
 data: { a: 1 },
 methods: {
  plus: function () {
   this.a++
  }
 }
})
vm.plus()
vm.a // 2

4. watch

類型:{ [key: string]: string | Function | Object | Array }

詳細:一個對象,鍵是需要觀察的表達式,值是對應回調函數。值也可以是方法名,或者包含選項的對象。Vue 實例將會在實例化時調用 $watch(),遍歷 watch 對象的每一個屬性。

5. props

類型:Array<string> | Object

詳細:props 可以是數組或對象,用于接收來自父組件的數據。props 可以是簡單的數組,或者使用對象作為替代,對象允許配置高級選項,如類型檢測、自定義驗證和設置默認值。

你可以基于對象的語法使用以下選項:

1  type: 可以是下列原生構造函數中的一種:String、Number、Boolean、Array、Object、Date、Function、Symbol、任何自定義構造函數、或上述內容組成的數組。會檢查一個 prop 是否是給定的類型,否則拋出警告。Prop 類型的更多信息在此。

2  default: any 為該 prop 指定一個默認值。如果該 prop 沒有被傳入,則換做用這個值。對象或數組的默認值必須從一個工廠函數返回。

3  required: Boolean 定義該 prop 是否是必填項。在非生產環境中,如果這個值為 truthy 且該 prop 沒有被傳入的,則一個控制臺警告將會被拋出。

4  validator: Function 自定義驗證函數會將該 prop 的值作為唯一的參數代入。在非生產環境下,如果該函數返回一個 falsy 的值 (也就是驗證失敗),一個控制臺警告將會被拋出。你可以在這里查閱更多 prop 驗證的相關信息。

二、DOM

API:https://cn.vuejs.org/v2/api/#%E9%80%89%E9%A1%B9-DOM

1.el

類型:string | Element

限制:只在用 new 創建實例時生效。

詳細:

(1)提供一個在頁面上已存在的 DOM 元素作為 Vue 實例的掛載目標。可以是 CSS 選擇器,也可以是一個 HTMLElement 實例。

(2)在實例掛載之后,元素可以用 vm.$el 訪問。

(3)如果在實例化時存在這個選項,實例將立即進入編譯過程,否則,需要顯式調用 vm.$mount() 手動開啟編譯。

提供的元素只能作為掛載點。不同于 Vue 1.x,所有的掛載元素會被 Vue 生成的 DOM 替換。因此不推薦掛載 root 實例到 <html> 或者 <body> 上。

如果 render 函數和 template property 都不存在,掛載 DOM 元素的 HTML 會被提取出來用作模板,此時,必須使用 Runtime + Compiler 構建的 Vue 庫。

2.template

類型:string

詳細:一個字符串模板作為 Vue 實例的標識使用。模板將會替換掛載的元素。掛載元素的內容都將被忽略,除非模板的內容有分發插槽。

如果值以 # 開始,則它將被用作選擇符,并使用匹配元素的 innerHTML 作為模板。常用的技巧是用 <script type="x-template"> 包含模板。

出于安全考慮,你應該只使用你信任的 Vue 模板。避免使用其他人生成的內容作為你的模板。

如果 Vue 選項中包含渲染函數,該模板將被忽略。

3.render

類型:(createElement: () => VNode) => VNode

詳細:字符串模板的代替方案,允許你發揮 JavaScript 最大的編程能力。該渲染函數接收一個 createElement 方法作為第一個參數用來創建 VNode。

如果組件是一個函數組件,渲染函數還會接收一個額外的 context 參數,為沒有實例的函數組件提供上下文信息。

Vue 選項中的 render 函數若存在,則 Vue 構造函數不會從 template 選項或通過 el 選項指定的掛載元素中提取出的 HTML 模板編譯渲染函數。

4.renderError

2.2.0 新增

類型:(createElement: () => VNode, error: Error) => VNode

詳細:只在開發者環境下工作。

當 render 函數遭遇錯誤時,提供另外一種渲染輸出。其錯誤將會作為第二個參數傳遞到 renderError。這個功能配合 hot-reload 非常實用。

示例:

new Vue({
 render (h) {
  throw new Error('oops')
 },
 renderError (h, err) {
  return h('pre', { style: { color: 'red' }}, err.stack)
 }
}).$mount('#app')

看完上述內容,是不是對詳解vue實例的選項有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柯坪县| 东乌珠穆沁旗| 永清县| 黄大仙区| 武威市| 富平县| 芒康县| 绥阳县| 志丹县| 云梦县| 安乡县| 吐鲁番市| 伊川县| 盖州市| 三江| 苍梧县| 霸州市| 松潘县| 亳州市| 桂林市| 轮台县| 连州市| 宝兴县| 黄陵县| 巧家县| 孟连| 屏东县| 晋城| 财经| 家居| 伽师县| 若尔盖县| 惠水县| 休宁县| 准格尔旗| 湖州市| 搜索| 沙洋县| 汽车| 垣曲县| 枣阳市|