摘要:之對基礎(chǔ)理解構(gòu)造器是一個構(gòu)造函數(shù),編程中稱之為構(gòu)造器每一個都是一個構(gòu)造函數(shù)的實例,這個過程叫做實例化構(gòu)造函數(shù)需要將其實例化后才會啟用構(gòu)造器要求實例化時需要傳入一個選項對象組件其實都是被擴展的實例。
vue.js 之 對vue.js基礎(chǔ)理解
Vue構(gòu)造器
1 . Vue.js是一個構(gòu)造函數(shù),編程中稱之為構(gòu)造器
2 . 每一個new Vue() 都是一個Vue構(gòu)造函數(shù)的實例,這個過程叫做實例化
3 . 構(gòu)造函數(shù)需要將其實例化后才會啟用 var vm = new Vue({ //...})
4 . Vue構(gòu)造器要求實例化時需要傳入一個選項對象
{{msg}}
1){{msg}}會在視圖中顯示
2){{msg}}在實例化后仍然保持?jǐn)?shù)據(jù)響應(yīng)
3){{msg}}盡管在console.log(data)中存在,但視圖卻找不到,且會報錯
4)因此請不要試圖在實例化后添加任何屬性
實例屬性 方法以及生命周期
1 . data會代理其對象里的所有屬性.
2 . 只有data里的屬性是響應(yīng)式的,即通信是雙向的.
3 . Vue被實例化后,再創(chuàng)建的屬性,將不會觸發(fā)視圖更新.
4 . 在文檔中經(jīng)常會使用 vm 這個變量名表示 Vue 實例,在實例化 Vue時,需要傳入一個選項對象,它可以包含數(shù)據(jù)(data)、模板(template)、掛載元素(el)、方法(methods)、生命周期鉤子(lifecyclehook)等選項。
var data = { a : 1 } var vm = new Vue({ data : data }) vm.a === data.a // -> true // 設(shè)置屬性也會影響到原始數(shù)據(jù) vm.a = 2 data.a // -> 2 // ... 反之亦然 data.a = 3 vm.a // -> 3
var data = { a : 1 } var vm = new Vue({ el : "#example" , data : data }) vm.$data === data // -> true vm.$el === document .getElementById( "example" ) // -> true // $watch 是一個實例方法 vm.$watch( "a" , function ( newVal, oldVal ) { // 這個回調(diào)將在`vm.a` 改變后調(diào)用 })實例生命周期 Vue 實例有一個完整的生命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載Dom→渲染、更新→渲染、卸載等一系列過程,我們稱這是 Vue 的生命周期。通俗說就是 Vue 實例從創(chuàng)建到銷毀的過程,就是生命周期。 在Vue的整個生命周期中,它提供了一些生命周期鉤子,給了我們執(zhí)行自定義邏輯的機會。
created(創(chuàng)建后)mounted(載入后)updated(更新后)d(銷毀后) estroyed(銷毀后)模板語法插值 Vue.js 使用了基于 HTML 的模版語法,允許開發(fā)者聲明式地將 DOM 綁定至底層 Vue 實例的數(shù)據(jù)。在底層的實現(xiàn)上, Vue 將模板編譯成虛擬 DOM 渲染函數(shù)。結(jié)合響應(yīng)系統(tǒng),在應(yīng)用狀態(tài)改變時, Vue 能夠智能地計算出重新渲染組件的最小代價并應(yīng)用到 DOM 操作上。 插值 文本
HTML{{message}}
還可以插入HTML使用指令v-html Mustache{{}} 不能在 HTML 屬性中使用,應(yīng)使用 v-bind 指令
這里的數(shù)據(jù)只會執(zhí)行一次更新:{{me ssage}}
自定義html
var app2 = new Vue({ el:"#app-2", data:{ message:"第一次更新", rawHtml:"指令" } }) app2.message = "第二次更新沒有賦值";
- 這里是自定義html
- 這里是自定義html
v-if、v-on、v-bind 指令(Directives)是帶有 v- 前綴的特殊屬性。指令屬性的值預(yù)期是單一 JavaScript 表達式(除了 v-for,之后再討論)。指令的職責(zé)就是當(dāng)其表達式的值改變時相應(yīng)地將某些行為應(yīng)用到 DOM 上。過濾器 是通過后面的函數(shù)對前面這個值做一個變化,得出需要的內(nèi)容 Vue.js 允許你自定義過濾器,被用作一些常見的文本格式化。過濾器應(yīng)該被添加在 mustache 插值的尾部,由“管道符”指示: 過濾器可以串聯(lián) 而且還可以接收參數(shù)
{{ message | capitalize }}
new Vue({ // 將message的值首字母變?yōu)榇髮?,其它不? filters: { capitalize: function (value) { if (!value) return "" value = value.toString() return value.charAt(0).toUpperCase() + value.slice(1) } } })縮寫 v-bind 縮寫 Vue.js 為兩個最為常用的指令提供了特別的縮寫:
v-on 縮寫
計算屬性 模板內(nèi)的表達式是非常便利的,但是它們實際上只用于簡單的運算。在模板中放入太多的邏輯會讓模板過重且難以維護。例如: 計算屬性 vs watched 當(dāng)你有一些數(shù)據(jù)需要隨著其它數(shù)據(jù)變動而變動時可以用 vs method計算屬性 也可以用 vswatched ;
與method對比{{fullName}}
與vs watched對比計算屬性基于自己的依賴進行緩存,只要message沒發(fā)生變化,多次訪問該計算屬性就會立即返回之前的計算結(jié)果,而不必再次執(zhí)行函數(shù);
而method調(diào)用總會執(zhí)行該函數(shù)。
都是用來處理某些數(shù)據(jù)隨其他數(shù)據(jù)的變動而變動的,但盡量不要濫用watch,如果代碼是命令式和重復(fù)的,先考慮下計算屬性computed,可使代碼更簡潔。
{{msg}}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85097.html
摘要:五六月份推薦集合查看最新的請點擊集前端最近很火的框架資源定時更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點擊::集web前端最近很火的vue2框架資源;定時更新,歡迎 Star 一下。 蘇...
摘要:五六月份推薦集合查看最新的請點擊集前端最近很火的框架資源定時更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點擊::集web前端最近很火的vue2框架資源;定時更新,歡迎 Star 一下。 蘇...
摘要:發(fā)布是由團隊開源的,操作接口庫,已成為事實上的瀏覽器操作標(biāo)準(zhǔn)。本周正式發(fā)布,為我們帶來了,,支持自定義頭部與腳部,支持增強,兼容原生協(xié)議等特性變化。新特性介紹日前發(fā)布了大版本更新,引入了一系列的新特性與提升,本文即是對這些變化進行深入解讀。 showImg(https://segmentfault.com/img/remote/1460000012940044); 前端每周清單專注前端...
閱讀 3546·2021-11-18 10:02
閱讀 3115·2019-08-29 18:34
閱讀 3404·2019-08-29 17:00
閱讀 434·2019-08-29 12:35
閱讀 761·2019-08-28 18:22
閱讀 1939·2019-08-26 13:58
閱讀 1675·2019-08-26 10:39
閱讀 2682·2019-08-26 10:11