VUE项目--Floor组件

开发Floor组件

Floor组件它被复用的

1. Floor组件获取mock数据,发请求的action书写在哪里?

派发action应该是在父组件的组件中的mounted(挂载完毕生命周期函数)中书写,
因为父组件需要通知Vuex发请求,父组件获取到mock数据,通过v-for 遍历生成多个floor组件,因此达到复用作用。

在父组件(home文件夹下的index.vue)中:

   //Floor组件内部没有发请求,数据是父组件传递过来的 
    <Floor v-for="(floor, index) in floorList" :key="floor.id" :list="floor" />
  mounted() {
    this.$store.dispatch("getFloorList");
  },
  computed: {
    ...mapState({ floorList: (state) => state.home.floorList }),
  },

2. Floor组件如何获取数据 ??

通过props传递

在Floor组件中:

<li
     class="active"
     v-for="(item, index) in list.navList"
     :key="index">
     <a href="#tab1" data-toggle="tab">{{ item.text }}</a>
</li>
export default {
  name: "Floor",
  props: ["list"],
  ......
}

组件间通信有:

  1. props:父子
  2. 插槽:父子
  3. 自定义事件:子父
  4. 全局事件总线$bus:万能
  5. pubsub:万能
  6. Vuex:万能
  7. $ref:父子通信

3. 轮播图实现
与之前写的大轮播图类似,但是可以写在mounted里面,为什么?

第一次写轮播图:不能在mounted中,是因为ListContainer组件内部存在向后台发请求,动态渲染结构
第二次:父组件发起请求后,向子组件传递数据;数据存在,结构完整;v-for在遍历来自于服务器的数据,如果服务器的数据有了,Floor结构一定的完整的。否则都看不见Floor组件

  mounted() {
    var mySwiper = new Swiper(this.$refs.mySwiper, {
      loop: true, // 循环模式选项
      // 如果需要分页器
      pagination: {
        el: ".swiper-pagination",
      },
      // 如果需要前进后退按钮
      navigation: {
        nextEl: ".swiper-button-next",
        prevEl: ".swiper-button-prev",
      },
    }); 
  },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用第三方的Vue组件库来实现季度选择器,例如`vue-datepicker`和`vue-quarterpicker`。以下是使用`vue-datepicker`实现季度选择器的示例代码: 1. 安装`vue-datepicker`组件库: ``` npm install --save vue-datepicker ``` 2. 在Vue组件中引入`vue-datepicker`组件: ```vue <template> <div> <datepicker v-model="selectedQuarter" :dateFormat="quarterFormat"></datepicker> </div> </template> <script> import Datepicker from 'vue-datepicker'; export default { components: { Datepicker, }, data() { return { selectedQuarter: null, }; }, computed: { quarterFormat() { return { toDisplay: (date) => { if (!date) return ''; const quarter = Math.floor((date.getMonth() / 3)); const year = date.getFullYear(); return `Q${quarter + 1} ${year}`; }, toValue: (dateStr) => { if (!dateStr) return null; const [quarter, year] = dateStr.split(' '); const month = quarter * 3; return new Date(year, month, 1); }, }; }, }, }; </script> ``` 在这个示例中,我们引入了`vue-datepicker`组件并将其作为`Datepicker`组件注册到Vue组件中。然后,我们使用`v-model`指令将选择的季度保存到`selectedQuarter`变量中,并使用`dateFormat`属性来设置日期格式。`dateFormat`属性是一个对象,其中包含`toDisplay`和`toValue`两个函数,用于将日期转换为字符串和将字符串转换为日期。我们使用这两个函数来实现季度选择器的显示和值的转换。`quarterFormat`计算属性返回一个`dateFormat`对象。 这样,您就可以在Vue应用程序中使用季度选择器了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值