最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Vue.js一些問題和思考學(xué)習(xí)筆記(1)

 更新時(shí)間:2016年12月02日 10:55:40   作者:小小滄海  
這篇文章主要為大家分享了關(guān)于Vue.js一些問題和思考的學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

本文不是Vue.js的教程,只是一邊看官網(wǎng)Vue的教程文檔一邊記錄并總結(jié)學(xué)習(xí)過程中遇到的一些問題和思考的筆記。

1、vue和avalon一樣,都不支持VM初始時(shí)不存在的屬性

而在Angular里是可以支持的,因?yàn)閍ngular采用臟檢查的方式實(shí)現(xiàn)雙向綁定,vue和avalon都是采用setter和getter實(shí)現(xiàn)雙向綁定

例,如下代碼在一秒后不會(huì)顯示出“xxcanghai”的字樣

<div id="app">
 <h1>{{obj.text}}</h1>
</div>

<script>
 var v = new Vue({
 el: '#app',
 data: {
 obj:{}
 }
 });
 setTimeout(function(){
 v.obj.text="xxcanghai";//無效
 },1000);
</script>

若給定初始值,則可生效,如下:

<div id="app">
 <h1>{{obj.text}}</h1>
</div>

<script>
 var v = new Vue({
 el: '#app',
 data: {
 obj:{
 text:"default Text" //給定初始值
 }
 }
 });
 setTimeout(function(){
 v.obj.text="xxcanghai";//有效
 },1000);
</script>

不過Vue其中比avalon好的一點(diǎn)是,Vue在只是對(duì)初始化時(shí)不存在的屬性賦值無效,但顯示是不會(huì)報(bào)錯(cuò)的。而avalon則根本無法顯示,對(duì)于上述第一段代碼運(yùn)行都會(huì)報(bào)錯(cuò)(不知道最新的avalon是否修改此問題)

好在vue中提供了$set方法來解決這種賦值失敗的問題,如下:

<div i<div id="app">
 <h1>{{obj.text}}</h1>
</div>

<script>
 var v = new Vue({
 el: '#app',
 data: {
 obj: {}
 }
 });
 setTimeout(function() {
 v.$set("obj.text", "xxcanghai");//有效
 }, 1000);
</script>

雖然這種采用字符串來表示變量名的方式會(huì)導(dǎo)致無法使用強(qiáng)類型的預(yù)編譯檢查(TypeScript),但也至少算能解決問題吧。

注意:Vue2.0已經(jīng)廢棄了vm.$set的用法,應(yīng)該使用Vm.set()全局方法。

2、input元素中屬性與v-model同時(shí)存在以屬性為優(yōu)先

如下代碼:當(dāng)文本框中的value屬性與v-model沖突時(shí)會(huì)以input的value屬性為優(yōu)先,并覆蓋v-model的屬性
最終console.log輸出的也是“inputText”

<div id="app">
 <input type="text" v-model="a" value="inputText">
</div>
<script>
 var v = new Vue({
 el: '#app',
 data: {
 a: "vueText"
 }
 });
 console.log(v.a);//inputText
</script>

對(duì)于復(fù)選框類型的input上述結(jié)論也同樣適用,如下:

<div id="app">
 <input type="checkbox" v-model="isCheck" checked>
</div>
<script>
 var v = new Vue({
 el: '#app',
 data: {
 isCheck: false
 }
 });
 console.log(v.isCheck);//true
</script>

復(fù)選框的v-model設(shè)定為false不選中,同時(shí)設(shè)定checked屬性選中,最終效果為以checked屬性優(yōu)先,復(fù)選框被選中,同時(shí)v.isCheck屬性被改寫為true。

3、VM中的函數(shù)放到data屬性和methods屬性中的區(qū)別,以及函數(shù)調(diào)用時(shí)帶括號(hào)與不帶括號(hào)的區(qū)別

Vue在實(shí)例化的時(shí)候有一個(gè)特殊的屬性即methods,我看官方文檔中把所有VM中的函數(shù)都放到methods屬性里面,經(jīng)測(cè)試把函數(shù)寫在data和methods中都可以正常運(yùn)行,那么兩者有何區(qū)別?
通過官方demo可知,在綁定函數(shù)的時(shí)候可以帶括號(hào)也可以不帶括號(hào),對(duì)于有參數(shù)的函數(shù)那必須帶括號(hào)調(diào)用,但是對(duì)于無參函數(shù)帶括號(hào)調(diào)用與不帶括號(hào)調(diào)用的區(qū)別是什么? 以下測(cè)試:

<div id="app">
 <button @click="dataFn">1.dataFn</button> 
 <!--輸出:<button>,[MouseEvent]-->
 
 <button @click="dataFn()">2.dataFn()</button> 
 <!--輸出:Vue,[]-->
 
 <button @click="methodsFn">3.methodsFn</button> 
 <!--輸出:Vue,[MouseEvent]-->
 
 <button @click="methodsFn()">4.methodsFn()</button> 
 <!--輸出:Vue,[]-->
</div>
<script>
 var vm = new Vue({
 el: "#app",
 data: {
 dataFn: function() {
 console.log(this,arguments);
 }
 },
 methods: {
 methodsFn: function() {
 console.log(this,arguments);
 }
 }
 });
 //xxcanghai@博客園
</script>

通過上述代碼對(duì)比可以得到以下結(jié)論:

  • 若想要在事件響應(yīng)函數(shù)中獲得Event對(duì)象,那么事件綁定時(shí)不能加括號(hào),參見上述1、3示例。
  • 若想在函數(shù)中this指向Vue實(shí)例化對(duì)象,函數(shù)調(diào)用時(shí)應(yīng)當(dāng)加括號(hào)。同時(shí),所有在methods屬性中的函數(shù),無論如何調(diào)用,this都指向當(dāng)前Vue實(shí)例化對(duì)象。
  • 遂最終結(jié)論為:應(yīng)當(dāng)把所有VM中的函數(shù)都放在methods中,同時(shí)對(duì)于事件的綁定應(yīng)當(dāng)使用無括號(hào)方式。即上述示例3中為最優(yōu)方案。

PS:當(dāng)然你也可以使用vue內(nèi)置的$event來顯示的傳遞event對(duì)象,以保證函數(shù)寫在任何位置都可以正常使用this和event。

<div id="app">
 <button @click="dataFn($event)">5.dataFn($event)</button> 
 <!--輸出:Vue,[MouseEvent]-->
 
 <button @click="methodsFn($event)">6.methodsFn($event)</button> 
 <!--輸出:Vue,[MouseEvent]-->
</div>


相關(guān)筆記

Vue學(xué)習(xí)筆記-1(http://m.fzitv.net/article/98869.htm)

Vue學(xué)習(xí)筆記-2(http://m.fzitv.net/article/98878.htm)

本文已被整理到了《Vue.js前端組件學(xué)習(xí)教程》,歡迎大家學(xué)習(xí)閱讀。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue利用廣度優(yōu)先搜索實(shí)現(xiàn)watch

    Vue利用廣度優(yōu)先搜索實(shí)現(xiàn)watch

    這篇文章主要為大家學(xué)習(xí)介紹了Vue如何利用廣度優(yōu)先搜索實(shí)現(xiàn)watch(有意思),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-08-08
  • vue3動(dòng)態(tài)路由刷新后空白或者404問題的解決

    vue3動(dòng)態(tài)路由刷新后空白或者404問題的解決

    在vue項(xiàng)目中采用動(dòng)態(tài)添加路由的方式,第一次進(jìn)入頁面會(huì)正常顯示,但是點(diǎn)擊刷新頁面后會(huì)導(dǎo)致頁面空白,所以下面這篇文章主要給大家介紹了關(guān)于vue3動(dòng)態(tài)路由刷新后空白或者404問題的解決方法,需要的朋友可以參考下
    2022-07-07
  • vue 指定組件緩存實(shí)例詳解

    vue 指定組件緩存實(shí)例詳解

    keep-alive 是 Vue 內(nèi)置的一個(gè)組件,可以使被包含的組件保留狀態(tài),或避免重新渲染。這篇文章主要介紹了vue 指定組件緩存,需要的朋友可以參考下
    2018-04-04
  • moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問題及解決

    moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問題及解決

    這篇文章主要介紹了moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue實(shí)現(xiàn)動(dòng)態(tài)圓環(huán)百分比進(jìn)度條

    Vue實(shí)現(xiàn)動(dòng)態(tài)圓環(huán)百分比進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)動(dòng)態(tài)圓環(huán)百分比進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue Element-ui input 遠(yuǎn)程搜索與修改建議顯示模版的示例代碼

    vue Element-ui input 遠(yuǎn)程搜索與修改建議顯示模版的示例代碼

    本文分為html,js和css代碼給大家詳細(xì)介紹了vue Element-ui input 遠(yuǎn)程搜索與修改建議顯示模版功能,感興趣的朋友一起看看吧
    2017-10-10
  • vue?elementui?實(shí)現(xiàn)搜索欄子組件封裝的示例代碼

    vue?elementui?實(shí)現(xiàn)搜索欄子組件封裝的示例代碼

    這篇文章主要介紹了vue?elementui?搜索欄子組件封裝,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • vue調(diào)用swiper插件步驟教程(最易理解且詳細(xì))

    vue調(diào)用swiper插件步驟教程(最易理解且詳細(xì))

    有時(shí)候我們需要在vue中使用輪播組件,如果是在vue組件中引入第三方組件的話,最好通過npm安裝,從而進(jìn)行統(tǒng)一安裝包管理,下面這篇文章主要給大家介紹了關(guān)于vue調(diào)用swiper插件的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 微信小程序用戶盒子、宮格列表的實(shí)現(xiàn)

    微信小程序用戶盒子、宮格列表的實(shí)現(xiàn)

    這篇文章主要介紹了微信小程序用戶盒子、宮格列表,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Vue 中如何正確引入第三方模塊的方法步驟

    Vue 中如何正確引入第三方模塊的方法步驟

    這篇文章主要介紹了Vue 中如何正確引入第三方模塊的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

焉耆| 潞西市| 晋中市| 定襄县| 民县| 托克托县| 沙雅县| 海门市| 岳阳县| 大邑县| 甘谷县| 灵丘县| 孝感市| 沅江市| 江都市| 应用必备| 宣武区| 红桥区| 万山特区| 镇雄县| 靖西县| 竹溪县| 社旗县| 宁德市| 海宁市| 诸暨市| 渭南市| 大城县| 萨嘎县| 莱芜市| 武乡县| 汝城县| 嘉兴市| 雅江县| 德清县| 玉林市| 芜湖市| 荣昌县| 阿拉善左旗| 龙口市| 青海省|