vue模块辅助函数、混入与轮播图

124 阅读1分钟

辅助函数的简单运用

先调用

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

使用:

 computed:{
    // ...mapState('modA',['modAStr']),
    // ...mapState('modB',['modBStr'])
    // ...mapState({
    //   a:state=>state.modA.modAStr,
    //   b:state=>state.modB.modBStr
    // })
    ...mapState({
      a:state=>state.modA.modAStr,
    }),
    ...mapState({
      b:state=>state.modB.modBStr,
    }),
    // ...mapGetters('modA',['strGetters']),
    // ...mapGetters('modB',['strGetters2']),
    ...mapGetters('modA',{
      getaStr:'strGetters'
    }),
    ...mapGetters('modB',{
      getbStr:'strGetters2'
    }),

  },
  created(){
    this.list = this.$store.state.list
  },
  components:{
    CompA,
    CompB
  },
  methods:{
    // changeFn(){
    //    if(this.shuzi==0){
    //    this.list = this.$store.state.list
    //  }
    //  if(this.shuzi==1){
    //    this.list = this.$store.getters.getDaZhuan
    //  }
    //  if(this.shuzi==2){
    //    this.list = this.$store.getters.getBenke
    //  }
    // },
    //  ...mapMutations('modA',['CHANGESTR']),
    //  ...mapMutations([
    //    'modA/CHANGESTR'
    //  ]),
    ...mapMutations('modA',{
      fn1:'CHANGESTR'
    }),

    changeFn(){  
        // this.CHANGESTR('11111')
      // this['modA/CHANGESTR']('11111')
      this.fn1('1111111')
    },

    // ...mapActions('modA',['waitfnStr']),
     //  ...mapActions([
    //    'modA/waitfnStr'
    //  ]),
    ...mapActions('modA',{
      waitFn1:'waitfnStr'
    }),
    changeFn2(){
      // this.waitfnStr('111111')
      // this['modA/waitFn1']('11111')
      this.waitFn1('11111')
    },
 },

混入

全局混入(不建议):

// Vue.mixin({
//   created:function(){
//     console.log('全局混入')
//   }
// }),

要混入的js:

export default {
    data() {
        return {
            msg:'vue已加载完毕'
        }
    },
    created() {
        console.log('11111')
    },
    methods: {
        fn1(){
            alert('11111')
        }
    },
}

局部调用与使用

<template>
  <div id="app">
    <nav>
      <h1 @click="fn1">{{msg}}</h1>
      <router-link to="/about">About</router-link>
    </nav>
    <router-view/>
  </div>
</template>
<script>
import mixinsA from '@/mixins/mixinsA.js'
export default {
  name:'App',
  mixins:[mixinsA]
}
</script>
<style>
</style>

轮播图

先安装依赖

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来注册一个轮播图插件 */

Vue.use(VueAwesomeSwiper)

再创建轮播图组件:

<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>

然后就可以在想使用的页面调用该组件