vue1.x和vue2.0區(qū)別(未)

一 轉(zhuǎn)義輸出html
  • 棄用了原來<span>{{{message}}}</span>寫法训措,只保留了<span v-html="message"></span>的寫法舟舒。
二 v-for循環(huán)中常用的$index、$key也已不支持使用
三 過濾器
  • 2.0不再有自帶過濾器,需要自己定義
  • 在vue2.0里 過濾器只能用類似函數(shù)的寫法reverseString( ‘I must tell you:’)惭缰,括號(hào)內(nèi)是參數(shù)珠漂,不同于vue1.0的用空格后加參數(shù)的寫法晚缩;
  • v-text里用過濾器失效,原因是在vue2.0里 管道符‘|’只能用在mousetache和v-bind中媳危。
Vue.filter('filtername',function(value,參數(shù)){
        return 參數(shù)+value.split('').reverse().join('');

    });
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>

</style>
</head>
<script src='./vue2.js'></script>
<script>
window.onload=function(){
    //類似于自定義指令荞彼,可以用全局方法 Vue.filter() 注冊(cè)一個(gè)自定義過濾器,它接收兩個(gè)參數(shù):過濾器 ID 和過濾器函數(shù)待笑。
    Vue.filter('reverseString',function(value,myString){
        // function里第一個(gè)參數(shù)value默認(rèn)為使用這個(gè)過濾器的data值鸣皂,在本例中是msg的值'you are mine'。請(qǐng)注意:第一個(gè)參數(shù)必須為自身的值暮蹂,后面可以加任意多的參數(shù)
        return myString+value.split('').reverse().join('');

    });

    new Vue({
        el:'#box',
        data:{
            msg:'you are mine'  
        }   
    });
};
</script>
<body>

<div id='box'>
    <p>msg is: <br>{{msg}}</p>
    <hr>
    <p>reverse msg is: <br>{{msg|reverseString( 'Hello:' )}}</p><!-- 在vue2.0里 過濾器只能用類似函數(shù)的寫法reverseString( 'I must tell you:')寞缝,括號(hào)內(nèi)是參數(shù),不同于vue1.0的用空格后加參數(shù)的寫法"  msg|reverseString  'I must tell you:' " -->

    <!-- <p v-text="msg|reverseString( 'I must tell you:' )"></p>失效 -->
    <!-- v-text里用過濾器失效仰泻,原因是在vue2.0里 管道符‘|’只能用在mousetache和v-bind中 -->
</div>

</body>
</html>

四 組件定義的變化
  • 在每個(gè)組件模板中,組件的定義有一點(diǎn)變化且不再支持片段代碼

之前可以寫片段代碼

<template>
    <h3>我是標(biāo)題</h3>
    <strong>我是組件</strong>
</template>

現(xiàn)在必須有一個(gè)根元素包裹

<template id="aaa">
    <div>
      <h3>我是標(biāo)題</h3>
      <strong>我是組件</strong>
    </div>
</template>
Vue.component('my-aaa',{
    template:'#aaa'
    
});
  • vue2.0組件定義的變化:(不再支持Vue.extend()的定義方式,有改動(dòng))
  1. Vue.component在2.0繼續(xù)能夠使用,但是不簡潔
Vue.component(組件名稱,{
    data(){},
    methods:{},
    template:''
});
  1. vue2.0推薦定義組件的一個(gè)簡潔的方法
var Home={ //定義一個(gè)json,即是定義的一個(gè)組件
    template:'#aaa'
}; //相當(dāng)于vue1.0之前的vue.extend();
Vue.component('my-aaa',Home); //定義好組件之后,需要注冊(cè)
<template id="aaa">
    <div>
      <h3>我是標(biāo)題</h3>
      <strong>我是組件</strong>
    </div>
</template>

五 組件通信的變化

子組件與父組件:

  • 子組件想要拿到父組件的數(shù)據(jù)
    • 通過props荆陆,沒有更改
    • $broadcast(),已廢除

父組件里:

<parent>
    <child :child-msg="msg"></child>//這里必須要用 - 代替駝峰
</parent>
data(){
    return {
        msg: [1,2,3]
    };
}

子組件通過props來接收數(shù)據(jù)

法一:

props: ['childMsg']

法二:

props: {
    childMsg: Array //這樣可以指定傳入的類型我纪,如果類型不對(duì)慎宾,會(huì)警告
}

法三:

props: {
    childMsg: {
        type: Array,
        default: [0,0,0] //這樣可以指定默認(rèn)的值
    }
}

例子:

<body>
    <div id="box">
        <aaa>
        </aaa>
    </div>

    <template id="aaa">
        <h1>11111</h1>
        <bbb :mmm="msg2"></bbb>
    </template>
    <script>
        var vm=new Vue({
            el:'#box',
            data:{
                a:'aaa'
            },
            components:{
                'aaa':{
                    data(){
                        return {
                            msg2:'我是父組件的數(shù)據(jù)'
                        }
                    },
                    template:'#aaa',
                    components:{
                        'bbb':{
                            props:['mmm'],
                            template:'<h3>我是bbb組件->{{mmm}}</h3>'
                        }
                    }
                }
            }
        });

    </script>
</body>
  • 子組件想要更改父組件數(shù)據(jù)/傳遞數(shù)據(jù)給父組件
    在vue1.0中:
  1. 子組件利用$dispatch()來向父組件傳遞數(shù)據(jù)丐吓,2.0已廢除
  2. 子組件調(diào)用$emit和父組件用v-on監(jiān)聽子組件的變化,進(jìn)而獲取數(shù)據(jù)
    • vm.$emit(事件名,數(shù)據(jù));

    • v-on: @

子組件:
<template>
    <div @click="send"></div>
</template>

methods: {
    send() {
        this.$emit('child-msg','我是子組件數(shù)據(jù)'); //主動(dòng)觸發(fā)child-msg方法趟据,‘我是子組件數(shù)據(jù)’為向父組件傳遞的數(shù)據(jù)
    }

父組件

<div>
    <child @child-msg="change" :msg="msg"></child> //監(jiān)聽子組件觸發(fā)的child-msg事件,然后調(diào)用change方法
</div>
methods: {
    change(msg) {
        this.msg = msg;
    }
}

例子:

<body>
    <div id="box">
        <aaa>
        </aaa>
    </div>

    <template id="aaa">
        <span>我是父級(jí) -> {{msg}}</span>
        <bbb @child-msg="get"></bbb>
    </template>
    <template id="bbb">
        <h3>子組件-</h3>
        <input type="button" value="send" @click="send">
    </template>
    <script>
        var vm=new Vue({
            el:'#box',
            data:{
                a:'aaa'
            },
            components:{
                'aaa':{
                    data(){
                        return {
                            msg:111,
                            msg2:'我是父組件的數(shù)據(jù)'
                        }
                    },
                    template:'#aaa',
                    methods:{
                        get(msg){
                            // alert(msg);
                            this.msg=msg;
                        }
                    },
                    components:{
                        'bbb':{
                            data(){
                                return {
                                    a:'我是子組件的數(shù)據(jù)'
                                }
                            },
                            template:'#bbb',
                            methods:{
                                send(){
                                    this.$emit('child-msg',this.a);
                                }
                            }
                        }
                    }
                }
            }
        });

    </script>
</body>

六 自定義鍵盤指令

之前:Vue.directive('on').keyCodes.f1=17;

現(xiàn)在:  Vue.config.keyCodes.ctrl=17

六 Vue過渡

  • 之前:transition 屬性
<p transition="fade"></p>

.fade-transition{}
.fade-enter{}
.fade-leave{}
  • 現(xiàn)在: transition 組件
<transition name="fade">
</transition>

.fade-transition{}
.fade-enter{}
.fade-leave{}  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末券犁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子汹碱,更是在濱河造成了極大的恐慌粘衬,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咳促,死亡現(xiàn)場離奇詭異稚新,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)跪腹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門褂删,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冲茸,你說我怎么就攤上這事屯阀。” “怎么了轴术?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵难衰,是天一觀的道長。 經(jīng)常有香客問我逗栽,道長盖袭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任彼宠,我火速辦了婚禮鳄虱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘兵志。我一直安慰自己醇蝴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布想罕。 她就那樣靜靜地躺著悠栓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪按价。 梳的紋絲不亂的頭發(fā)上惭适,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音楼镐,去河邊找鬼癞志。 笑死,一個(gè)胖子當(dāng)著我的面吹牛框产,可吹牛的內(nèi)容都是我干的凄杯。 我是一名探鬼主播错洁,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼戒突!你這毒婦竟也來了屯碴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤膊存,失蹤者是張志新(化名)和其女友劉穎导而,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隔崎,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡今艺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了爵卒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虚缎。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖技潘,靈堂內(nèi)的尸體忽然破棺而出遥巴,到底是詐尸還是另有隱情,我是刑警寧澤享幽,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站拾弃,受9級(jí)特大地震影響值桩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜豪椿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一奔坟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搭盾,春花似錦咳秉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蝌以,卻和暖如春炕舵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背跟畅。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工咽筋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人徊件。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓奸攻,卻偏偏與公主長得像蒜危,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子睹耐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容