<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

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

          2019-8-4    seo達人

          如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里

          前面介紹了Vue中組件的創(chuàng)建方式和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控制實現(xiàn)
          首先我們通過前面介紹的v-if標簽來實現(xiàn)下這種效果

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

          <div id="app">

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

              // 創(chuàng)建登錄的組件
              Vue.component("login",{
                  template: "<h3>這是一個登錄LOGIN組件</h3>"
              })
              // 創(chuàng)建注冊的組件
              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>

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

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



          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>

                  // 創(chuàng)建登錄的組件
                  Vue.component("login",{
                      template: "<h3>這是一個登錄LOGIN組件</h3>"
                  })
                  // 創(chuàng)建注冊的組件
                  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>

          組件包裹 標簽



          效果



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



          搞定~

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


          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.sdgs6788.com

          存檔

          国产精品久久久久9999高清| 香蕉aa三级久久毛片| 久久久久女人精品毛片| 人人狠狠综合久久亚洲88| 久久久久人妻一区精品果冻| 欧美久久综合九色综合| 久久久久久久波多野结衣高潮| 69久久夜色精品国产69| 91久久精品国产成人久久| 一级做a爰片久久毛片看看| 狠狠狠色丁香婷婷综合久久俺| 久久天天躁狠狠躁夜夜2020 | 久久99精品国产麻豆蜜芽| 亚洲精品乱码久久久久久不卡| 97久久久精品综合88久久| 色婷婷久久综合中文久久一本| 99精品国产在热久久无毒不卡 | 久久综合中文字幕| 国色天香久久久久久久小说| 久久久久久久久久久免费精品| 国产精品久久久亚洲| 久久精品国产日本波多野结衣| 久久久久无码中| 丁香五月综合久久激情| 国产精品久久久亚洲| 久久人人爽人人爽人人AV东京热| 亚洲国产日韩欧美综合久久| 精品视频久久久久| 国产激情久久久久影院老熟女免费 | 亚洲狠狠婷婷综合久久蜜芽 | 亚洲欧美一级久久精品| 国产成人久久777777| 国内精品久久久久久久影视麻豆| 日本精品久久久久中文字幕8| 久久免费精品一区二区| 久久精品国产精品亚洲精品| 久久99精品综合国产首页| 99久久精品免费| 性欧美大战久久久久久久| 亚洲欧美精品一区久久中文字幕| 午夜精品久久影院蜜桃|