<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue 項目中使用Loading組件的示例代碼

        來源:懂視網 責編:小采 時間:2020-11-27 22:08:53
        文檔

        vue 項目中使用Loading組件的示例代碼

        vue 項目中使用Loading組件的示例代碼:什么是vue插件? 從功能上說,插件是為Vue添加全局功能的一種機制,比如給Vue添加一個全局組件,全局指令等; 從代碼結構上說,插件就是一個必須擁有install方法的對象,這個方法的接收的第一個參數是Vue構造函數,還可以接收一個可選的參數,用于配置插件
        推薦度:
        導讀vue 項目中使用Loading組件的示例代碼:什么是vue插件? 從功能上說,插件是為Vue添加全局功能的一種機制,比如給Vue添加一個全局組件,全局指令等; 從代碼結構上說,插件就是一個必須擁有install方法的對象,這個方法的接收的第一個參數是Vue構造函數,還可以接收一個可選的參數,用于配置插件

        什么是vue插件?

        從功能上說,插件是為Vue添加全局功能的一種機制,比如給Vue添加一個全局組件,全局指令等;

        從代碼結構上說,插件就是一個必須擁有install方法的對象,這個方法的接收的第一個參數是Vue構造函數,還可以接收一個可選的參數,用于配置插件:

        var myplugin = {
        install:function(Vue, options){
        ...
        }
        }
        

        從意義上來說,正如jQuery的$.fn使jQuery有了一個龐大的生態一樣,Vue的插件機制使Vue形成了一個生態系統,你可以開發一個插件給別人復用。

        當在vue項目中請求后臺接口時,常常會使用 loding 過渡數據的加載時間。

        如果 loading 作為一個全局的加載狀態,應該寫在項目中的App.vue中

        <template>
         <div id="app">
         <router-view></router-view>
         <loading v-if='LOADING'/> //自己封裝的loading 組件
         </div>
        </template>
        
        <script>
         export default {
         name: 'App'
         }
        </script>

        這個Loading 組件通過 LOADING 的狀態顯示隱藏。我們希望在請求某個接口的時候,將 LOADING 改為true,當接口請求后改為false,這樣就能實現loading的過渡效果了。

        但是這里有一個問題,loading組件的顯示和隱藏是通過 LOADING 來控制的, 如果將 LOADING 直接定義在 App.vue 中,每次請求中直接修改 LOADING 是很麻煩的,所以推薦使用 vuex

        第一步:按照官網的例子,在App.vue的同層目錄下新建一個 store.js 文件.

        // store.js
        const store = new Vuex.Store({
         state: {
         LOADING: false
         },
         mutations: {
         showLoading(state){
         state.LOADING = true 
         },
         hideLoading (state) {
         state.LOADING = false
         }
         }
        })
        

        第二步: 在 main.js 中引入 store.js,并掛載到 Vue 實列上

        import store from './store'
        
        new Vue({
         el: '#app',
         store,
         template: '<App/>',
         components: { App }
        })
        
        

        第三步,在請求中改變 LOADING 的狀態

        Vue 項目中 API 的請求方法有很多,如果項目比較簡單,數據量比較小,可以在在頁面中直接使用像 axios、ajax、request等的 post/get 請求。以 axios 為例:

        methods:{
         //通常請求都希望以異步的方式,方便數據操作
         async test(){
         this.$store.commit('showLoading')
         //這里需要將 axios 提前掛載到 Vue的屬性上。
         await this.$axios.get('xxx/xxxx/xxx')
         this.$store.commit('hideLoading')
         }
        }
        

        第四步: 監聽 LOADING 狀態

        Vuex 中 state 是動態更新的,也就是不管在任何地方對某一個 state的值做了修改,那么依賴該數據的 DOM 也將會發生改變。修改 App.vue 文件,監聽 LOADING 的值的變化。

        <template>
         <div id="app">
         <router-view></router-view>
         <loading v-if='LOADING'/> //自己封裝的loading 組件
         </div>
        </template>
        
        <script>
         import {mapState} from 'vuex'
        
         export default {
         computed:{
         ...mapState([
         'LOADING'
         ])
         },
         name: 'App'
         }
        </script>
        
        

        總結:

        loading的過渡效果最根本的就是通過 state 來控制 loading 組件的顯示和隱藏。在請求接口前使該狀態為 為 true,接口完成后改為 false。

        簡單的 loading 組件。

        一個簡單的 loading 組件,應該會有一個遮罩層,一個過度動畫,或者一個loading 說明。

        <template>
         <section>
         <div class='mock'>
         <div class='main'>
         loading...
         </div>
         </div>
         </section>
        </template> 
        <style>
         section{
         width:100vh;
         height:100vh;
         position:relative;
         }
         .mock{
         tion{
         width:100vh;
         height:100vh;
         position:absolute;
         z-index:100;
         background-color:#abb2bf;
         }
         .main{
         margin:200px auto;
         text-align:center:
         }
        </style>
        

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue 項目中使用Loading組件的示例代碼

        vue 項目中使用Loading組件的示例代碼:什么是vue插件? 從功能上說,插件是為Vue添加全局功能的一種機制,比如給Vue添加一個全局組件,全局指令等; 從代碼結構上說,插件就是一個必須擁有install方法的對象,這個方法的接收的第一個參數是Vue構造函數,還可以接收一個可選的參數,用于配置插件
        推薦度:
        標簽: 使用 VUE 代碼
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品国产字幕久久不卡| 免费一级毛片在线观看| 亚洲无线电影官网| a级毛片毛片免费观看久潮喷| 亚洲中文字幕无码久久精品1 | 亚洲色图综合网站| 无码免费一区二区三区免费播放| 亚洲欧洲国产精品你懂的| 67194国产精品免费观看| 亚洲AV一二三区成人影片| 最近中文字幕mv免费高清视频7 | 黄页网址在线免费观看| 亚洲国产人成精品| 你懂的免费在线观看| 久久精品亚洲综合专区| 噼里啪啦免费观看高清动漫4| 亚洲日韩国产精品乱-久| 国产免费久久精品| 最近的2019免费中文字幕| 亚洲国产一区在线| 性生交片免费无码看人| 国产成人亚洲综合无| 国产国拍亚洲精品福利| 91禁漫免费进入| 亚洲国产AV无码一区二区三区| 亚洲视频在线精品| 777成影片免费观看| 亚洲色丰满少妇高潮18p| 亚洲精品综合久久| 免费A级毛片无码A∨| 亚洲精品无码成人片久久不卡| 亚洲AV成人精品日韩一区18p| 久久精品成人免费看| 97久久国产亚洲精品超碰热| 国产午夜鲁丝片AV无码免费 | 日本高清免费观看| 亚洲永久网址在线观看| 在线A亚洲老鸭窝天堂| 国产91免费在线观看| 免费大片av手机看片| 亚洲无成人网77777|