例子如下
="uni-container"
>
"fatherdata"
:fatherfcuntion=
"fatherfcuntion"
:fathermethod=
"fathermethod"
>
<
/child>
<
/view>
<
/template>
import child from
'./child.vue'
export
default
,data()
}}, fatherfcuntion:
function()
,}},
methods:,}
}<
/script>
child
<
/view>
<
/template>
export
default(;
}}, fatherfunction:}}
, fathermethod:}}
},mounted()
})<
/script>
initmixin
(vue)
;statemixin
(vue)
;eventsmixin
(vue)
;lifecyclemixin
(vue)
;rendermixin
(vue)
;
在initmixin(vue)中會執行
function
initmixin
(vue)};
}
_init方法中的$mount函式如下
// public mount method
vue.prototype.
$mount
=function
( el ,
hydrating
);
mountcomponent$1函式如下,會new watcher,函式為updatecomponent,函式updatecomponent會執行_update
function
mountcomponent$1
( vm,
el,hydrating);
// we set this to vm._watcher inside the watcher's constructor
// since the watcher's initial patch may call $forceupdate (e.g. inside child
// component's mounted hook), which relies on vm._watcher being already defined
newwatcher
(vm, updatecomponent, noop,}}
,true
/* isrenderwatcher */);
hydrating =
false
;return vm
}
在lifecyclemixin函式內部會定義乙個_update屬性函式
vue.prototype.
_update
=function
(vnode, hydrating)
else
......
};
_update函式中有乙個__patch__函式,主要比較newdata與olddata的差異進行差量更新
var
patch
=function
(oldvnode, vnode)
catch
(err
) data.__webviewid__ = mpinstance.data.__webviewid__;
var mpdata = object.
create
(null);
object.
keys
(data)
.foreach
(function
(key));
var diffdata =
this
.$shoulddiffdata ===
false
? data :
diff
(data, mpdata)
;...
.......}
;
上述有乙個clonewithdata方法,最後會返回深度轉殖的值,但是該方法會有問題,丟失value值為function的key,並且可能存在迴圈依賴問題。
function
clonewithdata
(vm)
上述可以看到,使用clonewithdata採用了json.parse(json.stringify(ret)),導致this中的data中會識別到物件如果包含function,會直接丟失到該屬性,並且diff演算法會識別到b:{}的差異,直接影響到子元件。 props寫法 Vue中props的用法知識點
vue中props的詳解 看一下官方文件 元件例項的作用域是孤立的。這意味著不能 也不應該 在子元件的模板內直接引用父元件的資料。父元件的資料需要通過 prop 才能下發到子元件中。也就是props是子元件訪問父元件資料的唯一介面。詳細一點解釋就是 乙個元件可以直接在模板裡面渲染data裡面的資料 ...
props寫法 簡單理解vue中Props屬性
使用 props 傳遞資料 元件例項的作用域是孤立的。這意味著不能並且不應該在子元件的模板內直接引用父元件的資料。可以使用 props 把資料傳給子元件。prop 是元件資料的乙個字段,期望從父元件傳下來。子元件需要顯式地用 props 選項 宣告 props vue.component child...
vue中的props物件
1.props物件的定義 props其實是properties的縮寫,props物件是用來定義屬性的。props物件可以接受陣列形式的引數又或者是物件形式的引數。陣列形式 props title likes ispublished commentids author 物件形式 在物件形式中,可以指定...