vue2.0變化(轉載)

来源:http://www.cnblogs.com/bsblogs/archive/2017/12/18/8060285.html
-Advertisement-
Play Games

原文鏈接:https://www.cnblogs.com/itbainianmei/p/6062249.html 1.每個組件模板template,不再支持片段代碼 之前: <template> <h3>vue-router+vue-loader</h3> <p>hshsh</p> </templa ...


原文鏈接:https://www.cnblogs.com/itbainianmei/p/6062249.html

  1.每個組件模板template,不再支持片段代碼

    之前:

      <template>
        <h3>vue-router+vue-loader</h3>
        <p>hshsh</p>
      </template>

       現在:必須有根元素   

        <template>

          <div>
            <h3>vue-router+vue-loader</h3>
            <p>hshsh</p>

          </div>
        </template>

  2.推出一個新的組件 

     如var home={

          template:' '  ->   代替了之前的Vue.extend({})的形式,直接把對象拋出來,就認為成是組件了。

        }

  3.生命周期

    之前:

    init created  beforeCompile  compiled  ready   beforeDestroy  destroyed

    現在:

    beforeCreate  組件實例剛剛被創建,屬性都沒有

    created          組件實例創建完畢,屬性已經綁定

    beforeMount  模板編譯之前

    mounted    模板編譯之後,代替了之前的ready*

    beforeUpdate  組件更新之前

    updated     組件更新完畢

    beforeDestroy  組件銷毀之前

    destroyed         組件銷毀後

  4.迴圈

     2.0預設可以添加重覆的數據,之前是必須加個track-by="$index"

        arr.forEach(function(item,index){ });

     去掉了一些隱式變數  $index $key

        之前:v-for="(index,val) in array"

                  現在:v-for="(val,index) in array"

  5.track-by="$index"

     變成<li v-for="(val,index) in arr" :key="index" >

  6.自定義鍵盤指令

       之前:Vue.directive("on").keyCodes.ctrl = 17;

       現在:Vue.config.keyCodes.ctrl = 17;

   7.過濾器

       內置過濾器都刪了

       自定義過濾器還有,但是:

      之前:{{msg | toDou '12' '5'}}

      現在:{{msg | toDou('12','5')}}

      8.組件通信  vm.$emit()  vm.$on()

      子級想拿到父級的數據:通過props

      之前子組件可以更改父組件信息,利用sync   eg:  :msg.sync="change"

      現在不允許

      如何改:

      a)父組件每次傳一個對象給子組件,對象引用

      b)只是追求不報錯,可以用mounted的鉤子函數,改變自身數據

      9.可以單一事件管理組件通信  ps:vuex以後單獨學習

      var Event = new Vue();

      Event.$emit('事件名','數據');

      Event.$on('事件名',function(){  }.bind(this));

      10.動畫

      transition不再是屬性:transition="fade"

      而是像模板一樣的標簽了<transition name="fade" @before-enter="" @enter="" @after="" @before-leave="" @leave="" @after-leave="">這裡放運動的元素,屬性,路由。。。</transition>

      .fade-enter-active,.fade-leave-active{transition:1s all ease;}

      .fade-enter  初始狀態

      .fade-enter-active 變成什麼樣,元素顯示出來的時候

      .fade-leave 

      .fade-leave -active 變成什麼樣,元素離開的時候

 

      配合animate.css使用:把fade和name去掉。給transition加enter-active-class="zoomInleft" leave-active-class="zoomOutRight",給運動的元素本身加class="animated"

      如果一組元素運動,標簽換成<transition-group></transition-group>並且把每個運動元素加個:key="index",其他同上

   11.路由vue-router和vue-loader

    路由改變:

    1.佈局的改變

    之前:<a v-link="{path:'/home'}">我是主頁</a>

    現在:<router-link to="/home">我是主頁</router-link>  它會自動解析成a v-link形式

    <router-view>沒變

    2.路由具體寫法

    var Home ={      //準備組件

      template:'<h3>我是主頁</h3>'

    }

    const routes = [   //配置路由

      {path:'/home',component:Home},

      {path:'*',redirect:'/home'}   //重定向

      ...一個個json

    ];

    const router = new VueRouter({routes:routes});  //生成路由實例   簡寫成對象的形式 :const router = new VueRouter({routes});

    new Vue({   //最後掛到vue上

      router,

      el:'#box'

    });

    vue-loader一樣的。配合起來使用也一樣。

  12.路由嵌套

    const routes = [   //配置路由

      {path:'/home',component:Home},

      {path:'/news',component:News,

        children:[

          {path:'/newsname',component:newsNameDetail},

          {}

        ]

      },

      {path:'*',redirect:'/home'}   //重定向

      ...一個個json

    ];

    帶有參數的路由配置

    

    //組件
    var Home={
      template:'<h3>我是主頁</h3>'
    };
    var User={
      template:`
      <div>
      <h3>我是用戶信息</h3>
      <ul>
        <li><router-link to="/user/strive/age/10">Strive</router-link></li>
        <li><router-link to="/user/blue/age/80">Blue</router-link></li>
        <li><router-link to="/user/eric/age/70">Eric</router-link></li>
      </ul>
      <div>
      <router-view></router-view>
      </div>
      </div>
      `
    };
    var UserDetail={
      template:'<div>{{$route.params}}</div>'
    };

    //配置路由
    const routes=[
      {path:'/home', component:Home},
      {
      path:'/user',
      component:User,
        children:[
          {path:':username/age/:age', component:UserDetail}
        ]
      },
       {path:'*', redirect:'/home'} //404
     ];

      //生成路由實例
      const router=new VueRouter({
        routes
      });


      //最後掛到vue上
      new Vue({
        router,
        el:'#box'
       });

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第二篇教程之前寫了一半,感覺不太好寫,而且內容單純介紹API,要說的很多,又枯燥乏味。所以那半篇文章就放下了。後來又開始思考這教程該怎麼寫,經過幾天的沉澱,終於有了一個決定:這個教程,就用IT戀里的實例來和大伙分享了,看看在實戰是怎麼被應用的。 ...
  • 實現應用自身被卸載時打開某一網址的c代碼 以上c文件源碼和使用的文章出自: http://blog.csdn.net/qq_21793463/article/details/48246685 向您的項目添加 C 和 C++ 代碼 搭配使用 Android Studio 2.2 或更高版本與 Andr ...
  • 原文鏈接:http://www.cnblogs.com/feidu/p/8057012.html 當Android跨進程啟動Activity時,過程界面很黑屏(白屏)短暫時間(幾百毫秒?)。當然從桌面Lunacher啟動一個App時也會出現相同情況,那是因為App冷啟動也屬於跨進程啟動Activit ...
  • 1、概述 Vue在觀察到數據變化時並不是立即更新DOM,而是開啟一個隊列,並緩衝在同一個事件迴圈中發生所有數據的改變。 在緩衝時會去除重覆的數據,從而避免不必要的計算和DOM操作。 在下一個事件迴圈的tick中,Vue刷新隊列並執行實際(已去重)的工作。 $nextTick就是知道什麼時候DOM更新 ...
  • 常用標簽的行內類型標簽有:a、span、img;塊級標簽有:div、p、h1~6、ul、ol、li、dl、dt、dd。 行內類型標簽的特征:標簽的大小由標簽的內容決定,不能設置width和height,不會自動換行。 塊級標簽的特征:可以設置width和height,會自動換行。 行內類型標簽還有一 ...
  • 小時候懷念的貪吃蛇游戲~~啦啦啦 ...
  • 所謂的清除浮動實際上就是清除浮動帶來的影響。那麼浮動會帶來什麼影響呢?下麵先看一個正常的例子: 定義一個父div1和子div2,將子div2設置成左浮動。 現象為: 當把div1的height=200px這句話註釋之後就會出現浮動的影響這個問題: 我們發現div1的背景顏色(粉色)沒有了。這個現象可 ...
  • 如圖所示,就是一個5*5的螺旋矩陣 我的思路如下: 第一步:拆分“層”數組 把矩陣根據層數分成N個連續的自然數組,根據如果每一層寬度為n的話,那麼每一層一共就有4(n-1)個數字,且當n=1時個數為1 拆分數字代碼 迴圈調用,n每次減2 第二部:將其組裝為一個“沙漏”數組 將第一步拆分好的數組取第1 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...