最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

mini-ui框架Indicator,Infinite scroll,Toast,MessageBox,Index List@詩

2021-06-01 23:42 作者:詩書畫唱  | 我要投稿

例子1:做好mini-ui必備的導入,配置等等,之后實現(xiàn)mini-ui的Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)的使用

mini-ui的網(wǎng)址:http://mint-ui.github.io/#!/zh-cn

npm?install?mint-ui?--save

main.js(下面都要用這個文件中的mini-ui的配置

mint-ui組件庫使用前必備

Nowplaying.vue

使用mini-ui的方法就是復制粘貼,運用如下的說明的代碼等等

當然,別的界面你也可以用上indicator指示器


例子2:實現(xiàn)Infinite?scroll無限滾動指令(Infinite?scroll就是當即將滾動至列表底部時, 自動加載更多數(shù)據(jù)。個人對Infinite?scroll的理解:就是通過滾動來實現(xiàn)“分頁查詢”的效果,也就是一開始是第1頁的10條數(shù)據(jù),向下滾動后,同時加載下一頁的數(shù)據(jù),有時會同時出現(xiàn)分別存在于2頁的數(shù)據(jù))

main.js(見前面的例子,一樣的代碼)

Nowplaying.vue


例子3:使用Toast消息提示框的提示無限滾動加載的數(shù)據(jù)已經(jīng)全部加載完畢

Nowplaying.vue

用Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)要注意先后的位置


例子4:用MessageBox消息框部分,實現(xiàn)點擊?正在即將上映界面?中的沒有排期的電影時,出現(xiàn)消息框,提示"沒有排期,看看其他的電影吧",可以選擇確定后跳轉(zhuǎn)到? 正在熱映界面? ?,點取消選項就只關(guān)閉消息框。


Comingsoon.vue

例子5:用Index List實現(xiàn)字母索引城市下拉框



String.fromCharCode(i)就是A-Z的26個大寫英文字母

字符A的十進制ASCII碼值是65

用localStorage來保存cityId等等

報錯解決 Duplicate keys detected: '1'. This may cause an update error.

Nowplaying.vue

Cinema.vue

City.vue

store.js

當然,后面我會進行一些bug修復,“超鏈接”(路由配置)修改,功能增加等等

例子6:下載并且使用vue項目中UUID1生成唯一標識id

npm install uuidv1


知識集錦

mintui框架

npm install mint-ui --save

main.js中引入mintui

Film.vue進度條Indicator

Nowplaying.vue無限滾動指令"

Comingsoon.vueMessageBox

City.vue城市選擇框Index List

elementui:pc端

mintui:移動端


單詞


Indicator

Infinite?

scroll

Toast



例子1:做好mini-ui必備的導入,配置等等,之后實現(xiàn)mini-ui的Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)的使用




mini-ui的網(wǎng)址:http://mint-ui.github.io/#!/zh-cn

http://mint-ui.github.io/docs/#/


npm?install?mint-ui?--save

node_modules目錄下后會自動出現(xiàn)mini-ui文件夾:

使用mini-ui時必備的配置


main.js(下面都要用這個文件中的mini-ui的配置

//mint-ui組件庫使用前必備?START

//?引入mint-ui組件庫:

import?MintUI?from?'mint-ui'

import?'mint-ui/lib/style.css'

//?使用mint-ui組件庫:

Vue.use(MintUI)


//mint-ui組件庫使用前必備?END




Nowplaying.vue


//mini-ui的Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)的使用?START

import?{?Indicator?}?from?'mint-ui';

//mini-ui的Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)的使用?END



????//?mini-ui的Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)的使用?START

????Indicator.open('加載中...')

????//?mini-ui的Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)的使用?END



?//?mini-ui的Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)的使用?START

??????Indicator.close();

??????//?mini-ui的Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)的使用?END


使用mini-ui的方法就是復制粘貼,運用如下的說明的代碼等等

當然,別的界面你也可以用上indicator指示器



例子2:實現(xiàn)Infinite scroll無限滾動指令(Infinite?scroll就是當即將滾動至列表底部時, 自動加載更多數(shù)據(jù)。個人對Infinite?scroll的理解:就是通過滾動來實現(xiàn)“分頁查詢”的效果,也就是一開始是第1頁的10條數(shù)據(jù),向下滾動后,同時加載下一頁的數(shù)據(jù),有時會同時出現(xiàn)分別存在于2頁的數(shù)據(jù))




main.js(見前面的例子,一樣的代碼)

Nowplaying.vue

?<!--?實現(xiàn)Infinite?scroll無限滾動指令的部分?START?-->

????<ul??v-infinite-scroll="loadMore"

????????infinite-scroll-disabled="loading"

????????infinite-scroll-distance="40"

????????infinite-scroll-immediate-check="false">

????<!--?實現(xiàn)Infinite?scroll無限滾動指令的部分?END?-->


//?實現(xiàn)Infinite?scroll無限滾動指令的部分?START

???????loading:?false,

??????pageNum:?1,

??????total:?0

??????//?實現(xiàn)Infinite?scroll無限滾動指令的部分?END


//?實現(xiàn)Infinite?scroll無限滾動指令的部分?START

???????this.total?=?res.data.data.total

??????//??實現(xiàn)Infinite?scroll無限滾動指令的部分?END


例子3:使用Toast消息提示框的提示無限滾動加載的數(shù)據(jù)已經(jīng)全部加載完畢

Nowplaying.vue


//Toast消息提示框的提示無限滾動加載的數(shù)據(jù)已經(jīng)全部加載完畢?START

import?{??Toast?}?from?'mint-ui'

//Toast消息提示框的提示無限滾動加載的數(shù)據(jù)已經(jīng)全部加載完畢?END


??//Toast消息提示框的提示無限滾動加載的數(shù)據(jù)已經(jīng)全部加載完畢?START

????????

????????Toast('已經(jīng)加載完啦')

????????//Toast消息提示框的提示無限滾動加載的數(shù)據(jù)已經(jīng)全部加載完畢?END

???????

用Indicator指示器(正在加載數(shù)據(jù)時的轉(zhuǎn)圈的動畫)要注意先后的位置
這里出現(xiàn)花屏,可能是因為我的gif錄制工具的原因,反正實際上看效果,是沒有什么問題的



例子4:用MessageBox消息框部分,實現(xiàn)點擊 正在即將上映界面 中的沒有排期的電影時,出現(xiàn)消息框,提示"沒有排期,看看其他的電影吧",可以選擇確定后跳轉(zhuǎn)到? 正在熱映界面? ?,點取消選項就只關(guān)閉消息框。



Comingsoon.vue



//MessageBox消息框部分?START

import?{?MessageBox?}?from?"mint-ui";

//MessageBox消息框部分?END



????????//MessageBox消息框部分?START

????????MessageBox({

??????????title:?"提示",

??????????message:?"沒有排期,看看其他的電影吧",

??????????showCancelButton:?true,

????????}).then((res)?=>?{

??????????if?(res?===?"confirm")?{

????????????this.$router.push(`/film/nowplaying`);

??????????}

????????});

????????//MessageBox消息框部分?END




例子5:用Index List實現(xiàn)字母索引城市下拉框



配置路由,默認先跳轉(zhuǎn)到 字母索引城市下拉框 界面組件

?let?o?=?{}

??????for?(let?i?=?65;?i?<?92;?i++)?{

??????????//String.fromCharCode(i)就是A-Z的26個大寫英文字母

????????o[String.fromCharCode(i)]?=?[]

??????}

字符A的十進制ASCII碼值是65

用localStorage來保存cityId等等

先在City.vue把選中的cid城市編號存儲在localStorage.setItem('cityId',?cid)中,后面store.js中的專門用來設(shè)置全局變量的state中聲明cityId:?localStorage.getItem('cityId'),讓cityId可以在

報錯解決 Duplicate keys detected: '1'. This may cause an update error.



Nowplaying.vue

?//字母索引城市下拉框部分?START

??????url:?`/mz/gateway?cityId=${this.$store.state.cityId}&pageNum=1&pageSize=10&type=1&k=4271989`,

??????//字母索引城市下拉框部分?END


??//字母索引城市下拉框部分?START

????????//這里${this.$store.state.cityId}要統(tǒng)一寫上,不可以單獨寫成430100等等,不然可能會報key方面的錯(我遇到過):

????????url:?`/mz/gateway?cityId=${this.$store.state.cityId}&pageNum=${this.pageNum}&pageSize=10&type=1&k=4271989`,

????????//字母索引城市下拉框部分?END

Cinema.vue

?//字母索引城市下拉框部分?START

???????url:?`/mz/gateway?cityId=${localStorage.getItem('cityId')}&ticketFlag=1&k=5440610`,

???????/*localStorage.getItem('cityId')才可以獲取當前的cityId,

???????this.$store.state.cityId的話會不準確,必須重新刷新界面后才準確*/

???????//字母索引城市下拉框部分?END


City.vue

<template>

??<mt-index-list>

????<mt-index-section?v-for="group?in?dicCitys"

????????:index="group.ch"?:key="group.ch">

????????<div?v-for="city?in?group.list"?@click="saveCity(city.cityId)"

??????????:key="city.name">

??????????<mt-cell?:title="city.name">

??????????</mt-cell>

????????</div>

????</mt-index-section>

??</mt-index-list>

</template>


<script>

import?axios?from?'axios'

export?default?{

??data?()?{

????return?{

??????dataList:?[]

????}

??},

??mounted?()?{

????axios({

??????url:?'/mz/gateway?k=9502566',

??????headers:?{

????????'X-Client-Info':?'{"a":"3000","ch":"1002","v":"5.0.4","e":"15610855429195524981146"}',

????????'X-Host':?'mall.film-ticket.city.list'

??????}

????}).then(res?=>?{

??????//?[{"cityId":110100,"name":"北京","pinyin":"beijing","isHot":1}]

??????//?console.log(JSON.stringify(res.data.data.cities))

??????this.dataList?=?res.data.data.cities

????})

??},

??computed:?{

????dicCitys?()?{


??????let?o?=?{}

??????for?(let?i?=?65;?i?<?92;?i++)?{

??????????//String.fromCharCode(i)就是A-Z的26個大寫英文字母

????????o[String.fromCharCode(i)]?=?[]

??????}

??????this.dataList.reduce(function?(obj,?city)?{

????????//?獲取城市拼音的首字母,并轉(zhuǎn)換成大寫字母

????????let?c?=?city.pinyin.charAt(0).toUpperCase()

????????obj[c].push(city)

????????return?o

??????},?o)

??????let?ny?=?[]

??????for?(let?attr?in?o)?{

????????if?(o[attr].length?>?0)?{

??????????let?group?=?{

????????????'ch':?attr,

????????????'list':?o[attr]

??????????}

??????????ny.push(group)

????????}

??????}

??????//???return?[{'ch':?'A',?list:?[{name:?'安徽',?pinyin:?'anhui'}]},

??????//?????{'ch':?'B',?list:?[{name:?'北京',?pinyin:?'beijing'}]},

??????//?????{'ch':?'C',?list:?[{name:?'長沙',?pinyin:?'changsha'}]}]

??????return?ny

????}

??},

??methods:?{

????saveCity?(cid)?{

???????console.log('保存城市Id'?+?cid)

??????//?將選中的城市的id保存在本地

??????localStorage.setItem('cityId',?cid)

??????this.$router.push(`/cinema`)

????}

??}

}

</script>


<style>


</style>


store.js



??//城市字母索引“下拉框”等部分?START

???,?cityId:?localStorage.getItem('cityId')//城市id

????//城市字母索引“下拉框”等部分?END



??//城市字母索引“下拉框”等部分?START

????????url:?`/mz/gateway?cityId=${store.state.cityId}&pageNum=1&pageSize=10&type=2&k=8700885`,

?????????//城市字母索引“下拉框”等部分?END


gif錄制工具出了點問題導致gif圖出現(xiàn)“花屏”

當然,后面我會進行一些bug修復,“超鏈接”(路由配置)修改,功能增加等等




例子6:下載并且使用vue項目中UUID1生成唯一標識id



npm install uuidv1

//使用vue項目中UUID1生成唯一標識id(暫時不用)?START

import?uuidv1?from?"uuid/v1";

??//使用vue項目中UUID1生成唯一標識id(暫時不用)?END




//使用vue項目中UUID1生成唯一標識id(暫時不用)?START

??????id:?uuidv1(),?//調(diào)用時就像?pageNum等變量那樣用就可以

??????//使用vue項目中UUID1生成唯一標識id(暫時不用)?END

知識集錦

第一階段

"1、npm run lint命令:

如果config/index.js文件中的useEslint被設(shè)置為true,那么在編譯時會報eslint錯誤

修改package.json文件中的""lint""為 ""eslint --fix --ext .js,.vue src"",

運行npm run lint,會自動修復所有的eslint錯誤

那么再執(zhí)行npm run dev時就不會報錯了"

"2、npm run build打包命令:

會自動生成dist文件,將dist文件夾中的內(nèi)容部署到后臺程序中"

"3、配置反向代理

修改config/index.js文件中的proxyTable屬性

pathRewrite的作用"

4、創(chuàng)建導航欄

5、配置歡迎頁面

6、高亮顯示

7、二級路由配置

8、路由傳參和name屬性傳參

9、去掉路徑的#

10、路由守衛(wèi):全局路由守衛(wèi)和局部路由守衛(wèi)


第二階段

"1、添加sass支持:--verbose顯示安裝的詳細信息

npm install sass-loader@7.3.1 --save-dev

npm install node-sass@4.14.1 --save-dev

在build文件夾下的webpack.base.conf.js的rules里面添加配置:

{

? ? ? ? test: /\.scss$/,

? ? ? ? loaders: ['style', 'css', 'sass']

? ? ? }"

"2、選項卡沉底:App.vue中添加全局樣式,Tabbar.vue中添加局部樣式,

iconfont方式添加圖片:

將所有圖片文件放在assets/iconfont文件夾下

在main.js文件中導入圖片文件

import './assets/iconfont/iconfont.css'

"

"3、搭建圖片服務器(后臺代碼部分,將圖片放在后臺代碼的public文件夾下)

圖片路徑:

https://static.maizuo.com/v5/upload/683067671e17cce7b5647693d5733ea3.jpg

配置反向代理解決跨域問題"

"4、輪播效果:

不要下載最新版本的swiper,否則分頁欄和自動播放無效

npm install swiper@5.4.5 --save"

"注意:如果反向代理不可用了,可嘗試清除一下瀏覽器的緩存歷史記錄

插槽slot用法:1、匿名插槽2具名插槽

異步加載數(shù)據(jù)后,放置輪播器中的圖片無法拖動:

添加observer:true配置"

5、電影頁面導航欄(正在熱映和即將上映)

6、顯示正在熱映請求數(shù)據(jù)(特殊處理設(shè)置請求頭獲取數(shù)據(jù)和反向代理)

7、過濾處理數(shù)據(jù)Vue.filter

8、電影頁面導航欄固定定位效果

9、電影詳情頁面

10、影院頁面數(shù)據(jù)加載

"11、better-scroll模塊:平滑的拖動

npm install better-scroll --save"

"12、事件總線(適合小項目):組件通訊

實現(xiàn)進入詳情頁面隱藏下方導航欄,離開詳情頁面,顯示下方導航欄的功能"

"13、狀態(tài)管理vuex(適合大項目)

npm install vuex --save

再次實現(xiàn)進入詳情頁面隱藏下方導航欄,離開詳情頁面,顯示下方導航欄的功能"

"14、調(diào)試工具devtool

創(chuàng)建文件夾VUEDEVTOOLS,在改文件夾下運行npm install vue-devtools

將VUEDEVTOOLS\node_modules\vue-devtools\vender\manifest.json文件中的

persistent屬性修改為true

打開google瀏覽器,更多工具-擴展程序-打開開發(fā)者模式-點擊加載已解壓的擴展程序-

選擇VUEDEVTOOLS\node_modules\vue-devtools\vender

重啟后點擊瀏覽器右上角擴展程序圖標"

15、vuex實現(xiàn)數(shù)據(jù)緩存:緩存即將上映數(shù)據(jù)

16、export規(guī)則

17、簡化獲取vuex屬性的代碼:mapState簡化$store.state.isShowBar

18、TOP3電影處理:vuex的getters實現(xiàn)(略)

19、mutation和action名稱常量化(略)

"20、mintui框架

npm install mint-ui --save

main.js中引入mintui

Film.vue進度條Indicator

Nowplaying.vue無限滾動指令"

Comingsoon.vueMessageBox

City.vue城市選擇框Index List

elementui:pc端

mintui:移動端

單詞


Indicator

?



Infinite?

?

scroll

?

Toast

?

toast是Android系統(tǒng)中一種消息提示框類型,是一個View?視圖,快速的為用戶顯示少量的信息。Toast?在應用程序上浮動顯示信息給用戶,它永遠不會獲得焦點,不影響用戶的輸入等操作,主要用于?一些幫助?/?提示。Toast?最常見的創(chuàng)建方式是使用靜態(tài)方法?Toast.makeText。

mini-ui框架Indicator,Infinite scroll,Toast,MessageBox,Index List@詩的評論 (共 條)

分享到微博請遵守國家法律
和顺县| 密云县| 翼城县| 湖北省| 淮安市| 施秉县| 罗江县| 中阳县| 揭西县| 元朗区| 天镇县| 沭阳县| 保德县| 台州市| 北海市| 灵武市| 常熟市| 桐城市| 屯留县| 旬邑县| 永寿县| 平阳县| 来安县| 顺昌县| 蒙自县| 曲松县| 富平县| 德化县| 巴彦淖尔市| 双辽市| 柳江县| 晴隆县| 行唐县| 鲜城| 同江市| 辽源市| 万安县| 清水河县| 昂仁县| 南溪县| 双鸭山市|