實例元素指的是Vue實例化時編譯的容器元素,或者說是Vue做用的元素容器app
<div id="app"></div> let vm = new Vue({ el:'#app' // 或者是其餘選擇器:.app; )
若是有多個相同的實例元素則只有第一個起效
也能夠在實例化的時候不指定實例元素,後面用 $mount() 手動進行掛載函數
<div id="app"></div> let vm = new Vue({ // option }) vm.$mount('#app')
能夠經過實例獲取實例元素this
let vm = new Vue({ el:'#app' }); <!-- 獲取實例元素 --> console.log(vm.$el);
在MVVM模式種充當着M數據模型層,更多的體現於將M層映射到V層spa
let arr = [{name:'fhj',age:18}]; let vm = new Vue({ el:'#app', data:{ dataset:arr// 數據模型層 } })
也能夠經過實例獲取數據對象code
let vm = new Vue({ el:'#app', data:{} }); <!-- 獲取數據模型層-data --> consele.log(vm.$data);
元素能夠經過 v-on: 事件 || @事件 進行綁定事件,事件中的this默認指向實例vm對象
<div id="app"> <input type="button" v-on:click="handle" /> <span>{{count}}</span> </div> let vm = new Vue({ el:'#app', data:{ count:0 }, methods:{ handle(){ this.count += 10; } } });
在js的事件中默認會有個event對象,Vue在事件上對event對象進行繼承二次封裝,更名爲$event,在事件當中默認傳過去繼承
<div id="app"> <input type="button" @click="handle(10,$event)"/> <span>{{count}}</span> </div> let vm = new Vue({ el:'#app', data:{ count:0 }, methods:{ handle(n,event){ this.count += n; event.target.setAttribute('disabled',true); } } });
computed 主要針對 data 的屬性進行操做,this默認指向實例vm;
<div id="app"> <!--調用了 fullName.get()--> <p>{{fullName}}</p> <input type="text" v-model="newName"> <!--changeName 事件改變了 fullName 的值,因此會自動觸發 fullName.set()--> <input type="button" value="changeName" @click="changeName"> </div>
var vm = new Vue({ el: '#app', data: { firstName:'DK', lastName: 'Lan', newName: '' }, computed: { fullName:{ get: function(){ <!-- 獲取屬性值顯示在V層 --> return this.firstName + '.' + this.lastName }, set: function(newValue){ <!-- 接收設置的值 --> this.firstName = newValue } } }, methods: { changeName: function(){ <!-- 設置fullName的值 --> this.fullName = this.newName; } } })
自定義指令和定義組件的方式很相似,也是有全局和局部指令之分事件
<div id="app"> <!-- 使用指令 --> <input type="text" v-fhj/> </div>
註冊一個全局自定義指令,v-fhj 指令名稱不用加前綴 Vue.directive('fhj',function(ele){// 爲宿主元素 // 默認觸發鉤子函數 ele.value = 'jj'; ele.focus(); });
<div id="app"> <!-- 使用局部指令 --> <input type="text" v-prative/> </div>
let vm = new Vue({ el:'#app', <!-- 自定義指令屬性 --> drectives:{ privat:function(ele){ ele.style.value='fhj' } } });