Maison > interface Web > Voir.js > le corps du texte

Quelle est la différence entre vue.1 et vue.2

coldplay.xixi
Libérer: 2020-11-12 15:47:59
original
3358 Les gens l'ont consulté

La différence entre vue.1 et vue.2 : 1. Lorsque vous utilisez l'instruction [v-for] dans vue2, elle peut ajouter du contenu répété 2. Il y a une grande différence entre vue2 et vue1 en cela ; il n'y a pas de filtre ; 3. La communication entre les deux composants est également différente.

Quelle est la différence entre vue.1 et vue.2

[Recommandations d'articles connexes : vue.js]

vue.1 et vue .2 Différence :

Différence 1 :

Lors de l'utilisation de la directive v-for dans vue2, elle peut ajouter du contenu en double, tout comme vous pouvez ajouter le idem Jetons un coup d'œil au contenu du message

La première chose à importer lors de l'écriture du code est le fichier vue2js.

code html :

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

code js :

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

Cependant, une autre différence est qu'il n'y a pas de $index, qui est présent dans vue1. Mais nous pouvons. ajoutez manuellement $index

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

Différence 2 :

Une grande différence entre nous dans vue2 et vue1 est qu'il n'y a pas de filtre ! ! ! Lorsque nous utilisons des filtres, nous devons les définir nous-mêmes.

Différence 3 :

De plus, nous utilisons différemment la communication entre les composants. Jetons un coup d'œil :

Code 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>
Copier après la connexion

code js :

 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;;
                        }
                    }
                }
            }
        })
    }
Copier après la connexion

Ce n'est pas une méthode dans vue2 mais nous pouvons utiliser cette méthode pour résoudre le problème.

Différence 4 :

L'une des différences les plus fondamentales est que lorsque nous définissons un modèle, nous devons envelopper le modèle dans une grande boîte.

<template id="tpl">
    <div><h3>3333333</h3><strong>strong</strong></div>
</template>
Copier après la connexion

Différence 5 :

Le cycle de vie est également différent Le cycle de vie dans notre vue2 est comme ça

 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("数据销毁完成")
                }
            })
        }
Copier après la connexion
<🎜. >Enfin, jetons un coup d'œil à la communication des composants de gestion en un seul événement

html :

<div id="div">
    <com-a></com-a>
    <com-b></com-b>
    <com-c></com-c>
</div>
Copier après la connexion

code 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>
                <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>
Copier après la connexion
Recommandations d'apprentissage gratuites associées :

JavaScript(vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal