<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          Vue教程(組件-切換案例)

          2019-8-4    seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          前面介紹了Vue中組件的創建方式和data及methods屬性,本文我們來做一個Vue組件的切換案例,效果如下:

          這個效果相信大家都能搞定,本文希望通過這個案例來加深下組件的使用,

          Vue 組件切換案例
          基礎頁面

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <meta http-equiv="X-UA-Compatible" content="ie=edge">
              <title>Document</title>
              <script src="./lib/vue-2.4.0.js"></script>
          </head>
          <body>
              <div id="app">

              </div>
              <script>
                  var vm = new Vue({
                      el: "#app",
                      data: {

                      },
                      methods: {
                          
                      }
                  })
              </script>
          </body>
          </html>


          一、通過v-if控制實現
          首先我們通過前面介紹的v-if標簽來實現下這種效果

          1.創建組件
          創建我們需要的兩個全局組件,并通過標簽使用。

          <div id="app">

              <login></login>
              <register ></register>
          </div>
          <script>

              // 創建登錄的組件
              Vue.component("login",{
                  template: "<h3>這是一個登錄LOGIN組件</h3>"
              })
              // 創建注冊的組件
              Vue.component("register",{
                  template: "<h3>這是一個注冊組件</h3>"
              })

              var vm = new Vue({
                  el: "#app",
                  data: {

                  },
                  methods: {
                      
                  }
              })
          </script>

          2.控制顯示
          添加鏈接標簽,通過 v-if 和 v-else 標簽來控制顯示和隱藏,如下



          效果



          完整代碼:

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <meta http-equiv="X-UA-Compatible" content="ie=edge">
              <title>Document</title>
              <script src="./lib/vue-2.4.0.js"></script>
          </head>
          <body>
              <div id="app">
                  <a href="" @click.prevent="flag=true">登錄</a>
                  <a href="" @click.prevent="flag=false">注冊</a>
                  <!--注意: v-if v-else-if v-else 使用^_^ -->
                  <login v-if="flag"></login>
                  <register v-else></register>
              </div>
              <script>

                  // 創建登錄的組件
                  Vue.component("login",{
                      template: "<h3>這是一個登錄LOGIN組件</h3>"
                  })
                  // 創建注冊的組件
                  Vue.component("register",{
                      template: "<h3>這是一個注冊組件</h3>"
                  })
                  var vm = new Vue({
                      el: "#app",
                      data: {
                          flag: false
                      },
                      methods: {}
                  })
              </script>
          </body>
          </html>

          二、通過component標簽來實現
          除了上面介紹的這種方式以外我們還可以通過Vue組件中給我們提供的一個component標簽來實現



          Vue提供了 component 來展示對應名稱的組件,component 是一個占位符, :is 屬性,可以用來指定要展示的組件的名稱

          效果



          完整代碼

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <meta http-equiv="X-UA-Compatible" content="ie=edge">
              <title>Document</title>
              <script src="./lib/vue-2.4.0.js"></script>
          </head>
          <body>
              <div id="app">
                      <a href="" @click.prevent="comName='login'">登錄</a>
                      <a href="" @click.prevent="comName='register'">注冊</a>

                      <component :is="comName"></component>
              </div>
              <script>

                  // 創建登錄的組件
                  Vue.component("login",{
                      template: "<h3>這是一個登錄LOGIN組件</h3>"
                  })
                  // 創建注冊的組件
                  Vue.component("register",{
                      template: "<h3>這是一個注冊組件</h3>"
                  })

                  var vm = new Vue({
                      el: "#app",
                      data: {
                          comName: "login"
                      },
                      methods: {

                      }
                  })
              </script>
          </body>
          </html>

          35
          36
          37
          38
          39
          組件切換-動畫
          前面我們介紹了 動畫 的使用,那么剛好我們可以在切換的時候把動畫效果給加上。
          添加動畫樣式:

          <style>
              .v-enter,
              .v-leave-to{
                  opacity: 0;
                  transform: translateX(150px) ;
              }

              .v-enter-active,
              .v-leave-active{
                  transition: all 1s ease;
              }
          </style>

          組件包裹 標簽



          效果



          我們發現動畫切換的時候兩個是一塊執行的,這時我們可以在 transition 標簽添加一個 mode屬性 來設置動畫的模式



          搞定~

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合