到了Vue2.x有哪些變化撩鹿?—— 知識點

1. 關(guān)于模板:在每個組件模板中(template)谦炬,不在支持片段代碼。

個人理解:在template中必須有有一個根元素(root element)來包裹住所有代碼节沦。也就是template標(biāo)簽只能有一個親兒子键思。

<body>
    <template id="testMsg">
        <h3>我是組件msg</h3><span>我是span</span>  <!-- 此處是錯的在2.x中 -->
    </template>
    <div id="app">
        <my-msg></my-msg>
    </div>
</body>
<script src="vue.js"></script>
<script type="text/javascript">
    Vue.component('myMsg',{
        template: '#testMsg'
    });
    var vm = new Vue({
        el: '#app',
    });
</script>

注意上面的模板(template)中,有兩個根元素h3標(biāo)簽和span標(biāo)簽散劫。報錯如下圖:



應(yīng)該改成如下:

 <template id="testMsg">
       <div>
           <h3>我是組件msg</h3><span>我是span</span>
       </div>
    </template>
2. 關(guān)于組件的定義 :利用json格式來代替extend定義組件稚机。比較簡潔。
<body>
    <template id="home">
       <div id="box">
           <h3>我是組件msg</h3><span>我是span</span>
       </div>
    </template>
    <div id="app">
        <my-msg></my-msg>
    </div>
</body>
<script src="vue.js"></script>
<script type="text/javascript">
    var Home = { //2.0定義一個組件获搏,用一個json
        template: '#home'
    };
    var vm = new Vue({
        el: '#app',
        components: {
            'myMsg':Home
        }
    });
</script>
3. 生命周期(鉤子函數(shù))

beforeCreate => 組件實例剛剛被創(chuàng)建,屬性和方法都沒有失乾;
create => 屬性和方法已經(jīng)綁定成功常熙,但DOM還沒有生成;
beforeMount => 模板編譯之前碱茁;
mounted => 模板已經(jīng)編譯完成裸卫,類似之前的ready,就是模板引擎數(shù)據(jù)有沒有展示;有用
beforeUpdate => 組件(數(shù)據(jù))更新之前纽竣,用于監(jiān)測實例內(nèi)的變化墓贿;有用
updated => 組件更新完畢;
beforeDestroy => 組件銷毀之前; this.$destroy();
destroyed => 組件銷毀之后;

<body>
    <div id="app">
        <input type="button" value="更新數(shù)據(jù)" @click="update" />
        <input type="button" value="銷毀組件" @click="destroy" />
        {{ msg }}
    </div>
</body>
<script src="vue.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el: '#app',
        data:{
            msg: 'Vue2.x 生命周期'
        },
        methods: {
            update(){
                this.msg = '點擊了數(shù)據(jù)更新吧'
            },
            destroy(){
                this.$destroy();//銷毀組件
            }
        },
        beforeCreate() {
            console.log('vue剛剛被創(chuàng)建');//還沒有屬性和方法
        },
        created() {
            console.log('vue實例已經(jīng)創(chuàng)建完成');//屬性和方法已經(jīng)綁定成功茧泪,DOM還沒有生成
        },
        beforeMount() {
            console.log('模板編譯之前');
        },
        mounted() {
            console.log('模板已經(jīng)編譯完成');//類似之前的ready,就是模板引擎數(shù)據(jù)有沒有展示
        },
        beforeUpdate() {
            console.log('組件更新之前');
        },
        updated() {
            console.log('組件更新完畢');
        },
        beforeDestroy() {
            console.log('組件銷毀之前');
        },
        destroyed() {
            console.log('組件銷毀之后');//組件銷毀之后,更新數(shù)據(jù)就無效了
        }
    });
</script>

頁面效果如圖:


4. 循環(huán)(v-for)
在Vue1.x中默認(rèn)不能添加重復(fù)數(shù)據(jù)聋袋,需要在此元素上添加“track-buy="$index"”队伟,但是在2.x中是不需要的,默認(rèn)就可以重復(fù)添加幽勒。
Vue2.x中去掉了嗜侮,隱式的變量($index、$key等)啥容,用的時候需要自己定義锈颗,類似原生js中的arr.forEach(function(val,key){});
<body>
    <div id="app">
        <input type="button" value="添加一個" @click="add" />
        <ul>
            <li v-for="(val,key) in list" :key="key"> <!-- :key="key"用唯一標(biāo)識key,來提升循環(huán)性能 -->
                {{ val }}  => {{ key }}
            </li>
        </ul>
    </div>
</body>
<script src="vue.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el: '#app',
        data:{
            list: ['red','green','blue','pink']
        },
        methods: {
            add() {
                this.list.push('buy');
            }
        }
    });
</script>

頁面效果如圖:


5. 自定義鍵盤指令

綁定在 Vue.config上了

Vue.config.keyCodes.xxx = xxx;

<script type="text/javascript">
    Vue.config.keyCodes.ctrl = 17;
    var vm = new Vue({
        el: '#app',
        methods: {
            change() {
                alert('改變了');
            }
        }
    });
</script>
6. 過濾器

Vue2.x把所有系統(tǒng)內(nèi)置的過濾器都刪除咪惠。但是可以直接展示json數(shù)據(jù)

<body>
    <div id="app">
        {{ msg }}
    </div>
</body>
<script src="vue.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el: '#app',
        data:{
            msg: {
                a:1,
                b:2,
                c:3
            }
        }
    });
</script>

json數(shù)據(jù)展示如圖:



注:可參考lodash工具庫击吱。

自定義傳參的方式發(fā)生變化了(函數(shù)傳參的方式),參數(shù)在括號內(nèi){{ msg | touble(1,2)}}
<body>
    <div id="app">
        {{ msg | touble(1,2)}}
    </div>
</body>
<script src="vue.js"></script>
<script type="text/javascript">
    Vue.filter('touble',function (n,a,b) {
        console.log('參數(shù)a:'+ a +'  參數(shù)b:'+b);
        return n<10?'0'+n:''+n;
    })
    var vm = new Vue({
        el: '#app',
        data:{
            msg: 18
        }
    });
</script>

效果如下圖:


請看下回

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遥昧,一起剝皮案震驚了整個濱河市覆醇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渠鸽,老刑警劉巖叫乌,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異徽缚,居然都是意外死亡憨奸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門凿试,熙熙樓的掌柜王于貴愁眉苦臉地迎上來排宰,“玉大人,你說我怎么就攤上這事那婉“甯剩” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵详炬,是天一觀的道長盐类。 經(jīng)常有香客問我,道長呛谜,這世上最難降的妖魔是什么在跳? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮隐岛,結(jié)果婚禮上猫妙,老公的妹妹穿的比我還像新娘。我一直安慰自己聚凹,他們只是感情好割坠,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布齐帚。 她就那樣靜靜地躺著,像睡著了一般彼哼。 火紅的嫁衣襯著肌膚如雪对妄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天沪羔,我揣著相機與錄音饥伊,去河邊找鬼。 笑死蔫饰,一個胖子當(dāng)著我的面吹牛琅豆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播篓吁,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼茫因,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了杖剪?” 一聲冷哼從身側(cè)響起冻押,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盛嘿,沒想到半個月后洛巢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡次兆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年稿茉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芥炭。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡漓库,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出园蝠,到底是詐尸還是另有隱情渺蒿,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布彪薛,位于F島的核電站茂装,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏善延。R本人自食惡果不足惜训唱,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挚冤。 院中可真熱鬧,春花似錦赞庶、人聲如沸训挡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澜薄。三九已至为肮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肤京,已是汗流浹背颊艳。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留忘分,地道東北人棋枕。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像妒峦,于是被迫代替她去往敵國和親重斑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

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