Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen vuejs2 und 1?

Was ist der Unterschied zwischen vuejs2 und 1?

青灯夜游
青灯夜游Original
2021-10-26 15:08:162528Durchsuche

Unterschiede: 1. Wenn Sie die v-for-Anweisung in vue2 verwenden, können Sie wiederholte Inhalte hinzufügen, vue1 jedoch nicht; 3. Die Kommunikationsmethoden zwischen Komponenten sind unterschiedlich; Lebenszyklus ist anders usw.

Was ist der Unterschied zwischen vuejs2 und 1?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Vue-Version 2.9.6, DELL G3-Computer.

Unterschied 1:

Bei Verwendung der V-for-Anweisung in vue2 können wiederholte Inhalte hinzugefügt werden, genau wie Sie den gleichen Nachrichteninhalt hinzufügen können

Beim Schreiben von Code , Zuerst Was importiert werden soll, ist die vue2js-Datei.

 HTML-Code:

bd63f5dbaa3d57f72e80d7f9df1e5663
        1306440f8fb3f8b3b2d35aad65de3a7e
        ff6d136ddc5fdfeffaf53ff6ee95f185
            26bd48817f53e2ce1cb391f236878ae3{{item}}bed06894275b65c1ab86501b08a632eb
        929d1f5ca49e04fdcb27f9465b944689
    16b28748ea4df4d9c2150843fecfba68

JS-Code:

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

Es gibt jedoch noch einen weiteren Unterschied: Es gibt keinen $index, aber wir können $index manuell hinzufügen

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

Unterschied 2:

Ein großer Unterschied zwischen uns in vue2 und vue1 besteht darin, dass es keine Filter gibt! ! ! Wenn wir Filter verwenden, müssen wir diese selbst definieren.

Unterschied 3:

   Außerdem nutzen wir die Kommunikation zwischen Komponenten anders:

HTML-Code:

<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-Code:

window.onload = function(){
       new Vue({
           el:"#div",
           data:{
               emitData:{  //写为json 原理:js中对象的引用
                   msg:"我是父组件数据"
               }
           },
           components:{
               &#39;child-com&#39;:{
                   props:[&#39;m&#39;],
                   template:"#tpl",
                   methods:{
                       change(){
                           this.m.msg=&#39;变了&#39;;
                       }
                   }
               }
           }
       })
   }

Dies ist keine Methode in vue2, aber wir können diese Methode verwenden um das Problem zu lösen.

Unterschied 4:

Einer der grundlegendsten Unterschiede besteht darin, dass wir beim Definieren einer Vorlage die Vorlage in eine große Box einpacken sollten.

e1077e214376481d8736cf8288f27c31
    dc6dce4a544fdca2df29d5ac0ea9906b684271ed9684bde649abda8831d4d355333333339528cedfa926ea0c01e69ef5b2ea9b08e99a69fbe029cd4e2b854e244eab143strong128dba7a3a77be0113eb0bea6ea0a5d016b28748ea4df4d9c2150843fecfba68
21c97d3a051048b8e55e3c8f199a54b2

Unterschied 5:

  Der Lebenszyklus in vue2 ist auch so

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("数据销毁完成")
               }
           })
       }

 Schließlich werfen wir einen Blick auf die Verwaltung der Komponentenkommunikation in einem einzigen Ereignis

html:

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

 js Code:

<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>
                <h3>我是C组件</h3>
                <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>

Verwandte Empfehlungen: „vue.js Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen vuejs2 und 1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn