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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...