91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue.1和vue.2有什么不同

發布時間:2020-12-10 11:14:42 來源:億速云 閱讀:230 作者:小新 欄目:編程語言

這篇文章主要介紹了vue.1和vue.2有什么不同,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

vue.1和vue.2區別:1、在vue2中使用【v-for】指令時它可以添加重復的內容;2、vue2中跟vue1中有一個很大的區別就是沒有過濾器;3、兩者使用組件之間的通訊時也不同。

vue.1和vue.2區別:

區別1:

在vue2中使用v-for指令時它可以添加重復的內容,就像可以添加相同的留言內容,下面我們來看一下

在寫代碼的時候首先要引入的是vue2js文件。

html代碼:

<div id="box">
        <input type="button" value="添加" @click="add()">
        <ul>
            <li v-for="item in arr">{{item}}</li>
        </ul>
    </div>

js代碼:

 window.onload=function () {
            new Vue({
                el:"#box",
                data:{
                   arr:[1,2,3,4,5,6]
                },
                methods: {
                    add:function () {
                        this.arr.unshift("1")
                    }
                }
            })
        }

但是,還有一點不同的地方就是沒有$index了,在vue1中是有的,但我們可以手動添加$index

<div id="box">
        <input type="button" value="添加" @click="add()">
        <ul>
            <li v-for="(val,index) in arr">{{val}}------->{{index}}</li>
        </ul>
    </div>

區別2:

我們在vue2中跟vue1中有一個很大的區別就是沒有過濾器!!!我們用著過濾器的時候要要自己定義。

區別3:

再者我們在使用組件之間的通訊時也不同,下面我們來看一下:

html代碼:

<div id="div">
    我是父組件---->{{emitData.msg}}<br>
    <child-com :m="emitData"></child-com>
</div>
</body>
</html>
<template id="tpl">
    <div>
        <span>我是子組件----></span>
        {{m.msg}}<br>
        <input type="button" value="change" @click="change()"/>
    </div>
</template>

js代碼:

 window.onload = function(){
        new Vue({
            el:"#div",
            data:{
                emitData:{  //寫為json 原理:js中對象的引用
                    msg:"我是父組件數據"
                }
            },
            components:{
                'child-com':{
                    props:['m'],
                    template:"#tpl",
                    methods:{
                        change(){
                            this.m.msg='變了';
                        }
                    }
                }
            }
        })
    }

這不是vue2中的方法但是我們可以使用這種方法來解決問題。 

區別4: 

有一個最基本的區別就是我們在定義模板的時應該把模板的東西用一個大盒子包起來。

<template id="tpl">
    <div><h4>3333333</h4><strong>strong</strong></div>
</template>

區別5: 

對于生命周期也是有所不同的,我們vue2中的生命周期是這樣的

 window.onload=function () {
            new Vue({
                el:"#box",
                data:{
                    msg:"lalalal"
                },
                beforeCreate () {
                    alert("實例創建之前")
                },
                created() {
                    alert("實例創建完成")
                },
                beforeMount() {
                    alert("數據編譯之前")
                },
                mounted() {
                    alert("數據編譯完成")
                },
                beforeUpdate:function () {
                    console.log("數據更新之前")
                },
                updated:function () {
                    console.log("數據解析完成")
                },
                beforeDestroy:function () {
                    alert("數據銷毀之前")
                },
                destroyed:function () {
                    alert("數據銷毀完成")
                }
            })
        }

最后我們來看一下單一事件中管理組件通訊

html:

<div id="div">
    <com-a></com-a>
    <com-b></com-b>
    <com-c></com-c>
</div>

js代碼:

<script>
    window.onload = function(){
        const event=new Vue;
        const A={
            template:`
            <div>
                <span>我是A組件---------></span>{{msg1}}
                <input type="button" value="把a組件的數據傳給c" @click="send()">
            </div>
            `,
            data(){
                return{
                    msg1:"我是A組件的數據"
                }
            },
            methods:{
                send(){
                    event.$emit("a-data",this.msg1)
                }
            }
        };
        const B={
            template:`
            <div>
                <span>我是B組件---------></span>{{msg2}}
                <input type="button" value="把b組件的數據傳給c" @click="send()">
            </div>
            `,
            data(){
                return{
                    msg2:"我是B組件的數據"
                }
            },
            methods:{
                send(){
                    event.$emit("b-data",this.msg2)
                }
            }
        };
        const C={
            template:`
            <div>
                <h4>我是C組件</h4>
                <span>接收到A的數據--->{{a}}</span><br/>
                <span>接收到B的數據--->{{b}}</span>
            </div>
            `,
            data(){
              return{
                  a:"a",
                  b:"b"
              }
            },
            mounted(){
                event.$on("a-data",function (a) {
                    this.a=a;
                }.bind(this));
                event.$on("b-data",function (b) {
                    this.b=b
                }.bind(this))
            }
        };
        new Vue({
            el:"#div",
            data:{
                    msg:"我是父組件數據"
            },
            components:{
               "com-a":A,
               "com-b":B,
               "com-c":C
            }
        })
    }
</script>

感謝你能夠認真閱讀完這篇文章,希望小編分享vue.1和vue.2有什么不同內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福海县| 剑河县| 新邵县| 长寿区| 衡南县| 晋江市| 湟中县| 新野县| 客服| 上杭县| 泽库县| 怀仁县| 桂林市| 黑山县| 凌源市| 林口县| 宁安市| 吉林省| 花莲县| 西和县| 黎平县| 宁德市| 海盐县| 五台县| 肥乡县| 陆良县| 永城市| 于田县| 井研县| 荥阳市| 通辽市| 通山县| 山阴县| 菏泽市| 策勒县| 准格尔旗| 军事| 池州市| 都江堰市| 丹江口市| 武安市|