let vm=new Vue({
el:'#app',//表示當(dāng)前的vue實(shí)例掛載在哪個DOM節(jié)點(diǎn)上
data(){
return {
msg:''
//data中的數(shù)據(jù)是根據(jù)defineProperty進(jìn)行監(jiān)聽的,所以是雙向綁定的狀態(tài)与境。
}
}鲸阻,
created(){
//鉤子函數(shù),在頁面初始化是進(jìn)行加載,一般放的是異步方法。
}
})
修改vm.msg是可以動態(tài)改變頁面上渲染的值。
指令
是vue賦予的特殊功能意義的指令溢陪。
data中的雙向綁定的數(shù)據(jù),是在改數(shù)據(jù)上添加了set睛廊、get方法形真,在賦值和取值時都會觸發(fā)。
let obj={},
let temp={},
Object.defineProperty(obj,'name',{
get(){
return temp['name']
},
set(value){
temp['name']=value;
}
})
引入第三方temp是用來做內(nèi)部轉(zhuǎn)化的超全,如果直接引用obj會導(dǎo)致棧溢出咆霜。
首先在初始化的時候邓馒,vue會循環(huán)data中的數(shù)據(jù),依次增加get和set函數(shù)裕便,這叫做數(shù)據(jù)劫持绒净。
只有數(shù)據(jù)中有set和get才會有響應(yīng)式的變化见咒。
如果放在data中的是一個數(shù)組偿衰,那么當(dāng)數(shù)組中某一項(xiàng)發(fā)生變化的時候,數(shù)組中沒法直接刷新數(shù)據(jù)改览,
因?yàn)閐ata沒法給數(shù)組的每一項(xiàng)增加set和get方法下翎,所以用$set方法,給對象強(qiáng)制加上響應(yīng)式的屬性宝当。
異步------回調(diào)
回調(diào)是解決異步的一個方法视事。
function buy(callback){
setTimeout(function(){
let a= '1'
callback(a);
},2000)
}
function cookie(){
console.log('cookie')
}
最典型的異步是ajax回調(diào)
promise的出現(xiàn)是為了解決回調(diào)函數(shù)的惡心寫法
首先promise是一個函數(shù),用法
promise構(gòu)造函數(shù)中傳入的是一個exe執(zhí)行器庆揩,意思是傳入就執(zhí)行俐东。
let promise=new Promise((resolve,reject)=>{
if(/異步調(diào)用成功/){
resolve()
}else{
reject()
}
})
promise(()=>{}).then(function(value){
//sucess
},function(error){
//failue
});
promise().then(function(){
}).catch(function(){
})