map mixins混入 Vue輪播圖

1.VUE的swiper輪播步驟:

第一步:

安裝依賴npm i swiper@5 --save

npm i vue-awesome-swiper@3 --save

第二步:

全局安裝

在main.js里面操作:

import?VueAwesomeSwiper?from?'vue-awesome-swiper'

/* 在node_modules里面找到swiper文件夾里面的css文件 */

import?'swiper/css/swiper.css'

/* 使用Vue.use來注冊(cè)一個(gè)輪播圖插件 */

Vue.use(VueAwesomeSwiper)

★ 復(fù)制下面的代碼在vscode中會(huì)出現(xiàn)word格式黃色空格,

需要自己刪掉苹威,建議手敲下面的代碼

第三步:

在自己的組件文件夾中新建一個(gè)輪播圖組件MySwiper.vue:

并復(fù)制以下代碼到你的組件中:

<template>

? <div?id="app">

? ? <swiper?ref="mySwiper"?:options="swiperOptions">

? ? ? <swiper-slide>Slide 1</swiper-slide>

? ? ? <swiper-slide>Slide 2</swiper-slide>

? ? ? <swiper-slide>Slide 3</swiper-slide>

? ? ? <swiper-slide>Slide 4</swiper-slide>

? ? ? <swiper-slide>Slide 5</swiper-slide>

? ? ? <div?class="swiper-pagination"?slot="pagination"></div>

? ? </swiper>

? </div>

</template>

<script>

export?default?{

? name:?"App",

? data() {

? ? return?{

? ? ? swiperOptions:?{

? ? ? ? pagination:?{

? ? ? ? ? el:?".swiper-pagination",

? ? ? ? },

? ? ? },

? ? };

? },

? computed:?{

? ? swiper() {

? ? ? return?this.$refs.mySwiper.$swiper;

? ? },

? }

};

</script>

<style>

.swiper-container?{

? width: 500px;

? height: 400px;

? border: 1px?solid?red;

}

</style>

把組件引用到app.vue文件中去:

need-to-insert-img

2.mixins混入:

App.vue文件

<template>

? <div id="app">

? ? <router-link to="/about">跳轉(zhuǎn)about</router-link>

? ? <h1 @click="fn">{{msg}}</h1>

? ? <router-view></router-view>

? </div>

</template>

<script>

import mixinsA from '@/mixins/mixinsA.js'

export default {

? name:"App",

? /* 一下內(nèi)容每個(gè)vue頁面都需要使用 */

? ?mixins:[mixinsA],

? ?/* 混入對(duì)象的鉤子將在組件自身鉤子之前調(diào)用 */

? ?created:function(){

? ?console.log('app init...');

? ?},

? ?data:function(){

? ?return{

? ? ?msg:'app init...'

? ?}

? ?},

? ?/* 數(shù)據(jù)對(duì)象在內(nèi)部會(huì)進(jìn)行遞歸合并,并在發(fā)生沖突時(shí)候以組件數(shù)據(jù)優(yōu)先 */

? ?methods:{

? ? ?fn:function(){

? ? ? ?alert('app init...')

? ? ?}

? ?}

}

</script>

<style>

</style>

main.js文件:

import Vue from 'vue'

import App from './App.vue'

import router from './router'

import store from './store'

Vue.config.productionTip = false

/* 全局混入 謹(jǐn)慎使用 會(huì)影響每個(gè)單獨(dú)創(chuàng)建的Vue實(shí)例

? ?大多情況下*/

Vue.mixin({

? created:function(){

? ? console.log('全局init');

? }

})

new Vue({

? router,

? store,

? render: h => h(App)

}).$mount('#app')

AboutView.vue文件:

<template>

? <div class="about">

? ? <h1>This is an about page</h1>

? ? ? <h1 @click="fn">{{msg}}</h1>

? </div>

</template>

<script>

import mixinsA from '@/mixins/mixinsA.js'

export default {

/* 一下內(nèi)容每個(gè)vue頁面都需要使用 */

? mixins:[mixinsA]

}

</script>

src下新建文件夾mixins,再創(chuàng)建mixinsA.js文件:

/* 把公共內(nèi)容放minxinsA.js文件中 */

export default {

? ? data:function(){

? ? ? ? return{

? ? ? ? ? msg:'vue基礎(chǔ)要學(xué)完啦'

? ? ? ? }

? ? ? },

? ? ? created(){

? ? ? ? console.log(this.msg);

? ? ? },

? ? ? methods:{

? ? ? ? fn:function(){

? ? ? ? ? alert(this.msg)

? ? ? ? }

? ? ? }

}

3.輔助函數(shù)操作模塊數(shù)據(jù):

App.vue文件:

<template>

? <div id="app">

? ? <h1>{{$store.state.modA.modaStr}}</h1>

? ? <h1>{{$store.state.modB.modbStr}}</h1>

? ? <h1>{{a}}</h1>

? ? <h1>{}</h1>

? ? <h1>{{$store.getters['modA/strGetter']}}</h1>

? ? <h1>{{getterA}}</h1>

? ? <h1>{{getterB}}</h1>

? ? <button @click="changeStr">修改modaStr的值</button>

? ? <button @click="waitchange">異步修改modaStr的值</button>

? </div>

</template>

<script>

/* 輔助函數(shù)的作用就是把vuex的方法解構(gòu)到組件中,可以直接this.使用 */

/* import {mapState} from 'vuex' */

import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'

export default {

? name:"App",

? created(){

? ? console.log(this);

? ? console.log(this.a);

? ? console.log(this.b);

? },

? computed:{

? ? /* 第一種 */

? ? /* 最簡單使用數(shù)組的形式獲取模塊中state中的值 */

? ?/* ...mapState('modA',['modaStr']),

? ?...mapState('modB',['modbStr']) */

? ?/* 使用對(duì)象的方式來獲取模塊中state的值,

? ? 好處在于如組件中的名字重復(fù)可以改名 */

? ? ?/* 第二種 */

? ? /* ...mapState({

? ? ? a:state=>state.modA.modaStr,

? ? ? b:state=>state.modB.modbStr,

? ? }), */

? ? ?/* 第三種 */

? ? ...mapState('modA',{

? ? ? a:state=>state.modaStr,

? ? }),

? ? ...mapState('modB',{

? ? ? b:state=>state.modbStr,

? ? }),

? ? /* 最簡單的使用數(shù)組的方式獲取模塊getters屬性 */

? ?/* ...mapGetters('modA',['strGetter']),

? ?...mapGetters('modB',['getterStrb']), */

? ?/* 使用對(duì)象的方式來獲取模塊的getters屬性

? ? ? 好處在于可以修改getters屬性的名字,避免和組件中的屬性名字重復(fù) */

? ?...mapGetters('modA',{

? ? ? getterA:'strGetter'

? ?}),

? ?...mapGetters('modB',{

? ? ? getterB:'getterStrb'

? ?}),

? },

? methods:{

? ? changeStr(){

? ? ? /* this.$store.commit('modA/CHANGESTR','堅(jiān)持學(xué)VUE啊') */

? ? ? /* this.CHANGESTR('鍵盤敲爛') */

? ? ? this.fn1('鍵盤敲爛')

? ? },

? ? waitchange(){

? ? ? /* this.$store.dispatch('modA/waitfnStr','堅(jiān)持學(xué)前端啊') */

? ? ? /* 第一種 */

? ? ? /* this.waitfnStr('我也不知道說什么了') */

? ? ? /* 第二種 */

? ? ? /* this.wait1('亞索,接好了') */

? ? ? /* 第三種 */

? ? ? this['modA/waitfnStr']('德瑪西亞')

? ? },

? ? /* 第一種 */

? ? /* ...mapMutations('modA',['CHANGESTR']), */

? ? /* 第二種 */

? ? /* 利用對(duì)象的方法解構(gòu)出modA中的 Mutations 防止命名和組件方法重復(fù)*/

? ? /* mapActions 利用數(shù)組的方式解構(gòu)出modA中的actions方法 waitfnStr */

? ? ?...mapMutations('modA',{

? ? ? ?fn1:'CHANGESTR'

? ? }),

? ? /* 第一種 */

? ? /* ...mapActions('modA',['waitfnStr']) ?*/

? ? /* 第二種 */

? ? /* ...mapActions('modA',{

? ? ? ?wait1:'waitfnStr'

? ? }), */

? ? /* 第三種 */

? ? ...mapActions([

? ? ? 'modA/waitfnStr' ?//就等于 this['modA/waitfnStr']()

? ? ])

? }

? }

store下index.js文件:

/* import { set } from 'core-js/core/dict'; */

import Vue from 'vue'

import Vuex from 'vuex'

/* 先把各個(gè)模塊導(dǎo)入進(jìn)來 */

import modA from '@/store/modules/ModA.js'

import modB from '@/store/modules/ModB.js'

Vue.use(Vuex)

/* Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式 + 庫贮乳。

它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),

并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化恬惯。 */

/* 如果需要構(gòu)建一個(gè)中單行單頁應(yīng)用,灰考慮如何更好的在組件外部管理狀態(tài),

? ?Vuex將會(huì)成為自然而然的選擇 */

/* 導(dǎo)出一個(gè)Vuex實(shí)例化對(duì)象 */

export default new Vuex.Store({

? /* state是用來存儲(chǔ)組件中的數(shù)據(jù)的 */

? state: {

? },

? /* getters計(jì)算組件中的數(shù)據(jù)的,可以對(duì)數(shù)據(jù)進(jìn)行二次加工類似于computer功能 */

? /* 類似于計(jì)算屬性 */

? getters: {

? },

? /* 在mutations中修改state中的值(修改state中的值要想留下記錄必須用mutations修改) */

? mutations: {

? },

? /* actions是用來調(diào)后臺(tái)接口的并commit提交一個(gè)mutations */

? actions: {

? },

? /* 可以使用modules把vuex分模塊 */

? /* 分模塊實(shí)現(xiàn)數(shù)據(jù)集中管理 */

? /* 在 modules 中把模塊名注釋一下*/

? modules: {

? ?modA:modA,

? ?modB:modB

? }

})

store下創(chuàng)建modules文件夾,創(chuàng)建ModA.js文件:

/* 模塊的局部狀態(tài) */

/* 箭頭函數(shù)如果想返回對(duì)象需要使用()包一下不能直接返回{} */

const state = ()=>({

? ? modaStr:'我是模塊A的數(shù)據(jù)'

? })

? /* getters計(jì)算組件中的數(shù)據(jù)的,可以對(duì)數(shù)據(jù)進(jìn)行二次加工類似于computer功能 */

? /* 類似于計(jì)算屬性 */

? const getters= {

? ? strGetter:function(state){

? ? ? ? console.log(state);

? ? ? return state.modaStr + 'getter'

? ? }

? }

? /* 在mutations中修改state中的值(修改state中的值要想留下記錄必須用mutations修改) */

? const mutations= {

? ?CHANGESTR(state,payload){

? ? state.modaStr = payload

? ?}

? }

? /* actions是用來調(diào)后臺(tái)接口的并commit提交一個(gè)mutations */

? const ?actions= {

? ? waitfnStr({commit},data){

? ? ? ? setTimeout(()=>{

? ? ? ? ? ? commit('CHANGESTR',data)

? ? ? ? },1000)

? ? }

? }

? /* 可以使用modules把vuex分模塊 */

? const modules={

? }

? export default {

? ? ? /* 保證模塊之間的數(shù)據(jù)獨(dú)立運(yùn)行,不互相影響 */

? ? ? namespaced:true,

? ? ? state,

? ? ? getters,

? ? ? mutations,

? ? ? actions,

? ? ? modules

? }

創(chuàng)建ModB.js文件:

const state = ()=>({

? ? modbStr:'我是模塊B的數(shù)據(jù)'

? })

/* getters計(jì)算組件中的數(shù)據(jù)的,可以對(duì)數(shù)據(jù)進(jìn)行二次加工類似于computer功能 */

/* 類似于計(jì)算屬性 */

const getters= {

? getterStrb:function(state){

? ? return state.modbStr+'getter'

? }

}

/* 在mutations中修改state中的值(修改state中的值要想留下記錄必須用mutations修改) */

const mutations= {

}

/* actions是用來調(diào)后臺(tái)接口的并commit提交一個(gè)mutations */

const ?actions= {

}

/* 可以使用modules把vuex分模塊 */

const modules={

}

export default {

? ? /* 保證模塊之間的數(shù)據(jù)獨(dú)立運(yùn)行,不互相影響 */

? ? namespaced:true,

? ? state,

? ? getters,

? ? mutations,

? ? actions,

? ? modules

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末向拆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子酪耳,更是在濱河造成了極大的恐慌浓恳,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碗暗,死亡現(xiàn)場(chǎng)離奇詭異颈将,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)言疗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門晴圾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人噪奄,你說我怎么就攤上這事死姚。” “怎么了勤篮?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵都毒,是天一觀的道長。 經(jīng)常有香客問我碰缔,道長账劲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮瀑焦,結(jié)果婚禮上腌且,老公的妹妹穿的比我還像新娘。我一直安慰自己切蟋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布榆芦。 她就那樣靜靜地躺著,像睡著了一般喘鸟。 火紅的嫁衣襯著肌膚如雪匆绣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天什黑,我揣著相機(jī)與錄音崎淳,去河邊找鬼。 笑死愕把,一個(gè)胖子當(dāng)著我的面吹牛拣凹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恨豁,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嚣镜,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了橘蜜?” 一聲冷哼從身側(cè)響起菊匿,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎计福,沒想到半個(gè)月后跌捆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡象颖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年佩厚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片说订。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抄瓦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出陶冷,到底是詐尸還是另有隱情闺鲸,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布埃叭,位于F島的核電站摸恍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜立镶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一壁袄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧媚媒,春花似錦嗜逻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嵌巷,卻和暖如春萄凤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搪哪。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工靡努, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晓折。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓惑朦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親漓概。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漾月,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容