<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
        主站蜘蛛池模板: 久久久久久免费视频| 老司机69精品成免费视频| 在线视频观看免费视频18| 亚洲国产模特在线播放| 91香焦国产线观看看免费| 亚洲视频一区二区在线观看| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 中文字幕版免费电影网站| 亚洲综合国产精品第一页| 国产人成网在线播放VA免费| 国产偷窥女洗浴在线观看亚洲| 在线免费观看伊人三级电影| 亚洲av无码专区在线播放| 91精品视频在线免费观看| 亚洲剧情在线观看| 蜜桃精品免费久久久久影院| 午夜在线亚洲男人午在线| 国产成人99久久亚洲综合精品| 东方aⅴ免费观看久久av| 亚洲综合精品一二三区在线| 黄页免费的网站勿入免费直接进入| 亚洲人成www在线播放| 全部免费国产潢色一级| 久久国产乱子伦精品免费午夜 | 成人国产网站v片免费观看| 久久亚洲精品无码播放| 97av免费视频| 亚洲gay片在线gv网站| 亚洲乳大丰满中文字幕| 国产一卡二卡3卡四卡免费| 免费在线观看亚洲| 亚洲精品国产字幕久久不卡| 久热中文字幕在线精品免费| 亚洲av无码专区亚洲av不卡| 久久影院亚洲一区| 无码国产精品久久一区免费| 一级一黄在线观看视频免费| 亚洲男女性高爱潮网站| 免费观看日本污污ww网站一区| 丁香花在线观看免费观看图片| 国产亚洲精品免费|