Rumah > hujung hadapan web > View.js > Apakah perbezaan antara vuejs2 dan 1

Apakah perbezaan antara vuejs2 dan 1

青灯夜游
Lepaskan: 2021-10-26 15:08:16
asal
2564 orang telah melayarinya

Perbezaan: 1. Apabila menggunakan arahan v-for dalam vue2, anda boleh menambah kandungan berulang, tetapi vue1 tidak boleh; 2. vue2 mempunyai penapis, tetapi vue1 tidak 3. Kaedah komunikasi antara komponen adalah berbeza ; 4. Kitaran hidup berbeza dsb.

Apakah perbezaan antara vuejs2 dan 1

Persekitaran pengendalian tutorial ini: sistem Windows 7, vue versi 2.9.6, komputer DELL G3.

Perbezaan 1:

Apabila menggunakan arahan v-for dalam vue2, ia boleh menambah kandungan berulang, sama seperti anda boleh tambah Dengan kandungan mesej yang sama, mari kita lihat

Apabila menulis kod, perkara pertama yang perlu diimport ialah fail vue2js.

Kod HTML:

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

Kod JS:

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

Walau bagaimanapun, perbezaan lain ialah tiada $index, yang terdapat dalam vue1 , tetapi kami boleh menambah $index secara manual

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

Perbezaan 2:

Kami mempunyai perbezaan besar antara vue2 dan vue1 iaitu tiada Penapis! ! ! Apabila kita menggunakan penapis, kita perlu menentukannya sendiri.

Perbezaan 3:

Tambahan pula, kami menggunakan komunikasi antara komponen secara berbeza Mari kita lihat:

kod 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>
Salin selepas log masuk
Kod 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;;
                       }
                   }
               }
           }
       })
   }
Salin selepas log masuk
Ini bukan kaedah dalam vue2 tetapi kita boleh menggunakan kaedah ini untuk menyelesaikan masalah.

Perbezaan 4:

Salah satu perbezaan paling asas ialah apabila kita mentakrifkan templat, kita harus membungkus templat itu dalam kotak besar.

<template id="tpl">
    <div><h3>3333333</h3><strong>strong</strong></div>
</template>
Salin selepas log masuk

Perbezaan 5:

Kitaran hidup juga berbeza dalam vue2 adalah begini

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("数据销毁完成")
               }
           })
       }
Salin selepas log masuk
Akhirnya, mari kita lihat komunikasi komponen pengurusan dalam satu acara

html:

<div id="div">
    <com-a></com-a>
    <com-b></com-b>
    <com-c></com-c>
</div>
Salin selepas log masuk
kod 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>
Salin selepas log masuk
Cadangan berkaitan: "

vue . tutorial js

Atas ialah kandungan terperinci Apakah perbezaan antara vuejs2 dan 1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan