better-scroll
作者:互联网
VScroll.vue
作为子组件(也可叫做公共组件)。这里用插槽。不用props .props 父传子传数据,子代VScroll拿到数据,但是VScorll里面的滚动内容确实不定。(数据不定最关键是样式不定也叫不统一)。于是用插槽,插槽:父组件直接传html结构。在外面处理好再传递进来给子组件展示。
props:子组件比如同一个title组件,只是title文字不一样,其他样式都一样,用props是最合适的。但是样式都发生了巨大变化了呢。还是插槽
<template> <div class="wrapper" ref="wrapper"> <!-- 默认插槽,使用该组件时用要滚动内容替换 --> <slot></slot> </div> </template> <script> //导入BScroll import BScroll from "better-scroll" export default { name:"VScroll", data() { return { scroll:null } }, mounted() { //创建BScroll对象并设置参数 this.scroll = new BScroll(this.$refs.wrapper,{ mouseWheel: true,//开启鼠标滚轮 disableMouse: false,//启用鼠标拖动 disableTouch: false,//启用手指触摸 scrollX: true, //X轴滚动启用 scrollY:true, click:true, //在浏览器模拟器中生效 tap:true, //在真机中生效 // eventPassthrough: 'vertical',//设置该属性为vertical 则只会滚动设置为true的轴 }) }, } </script> <style scoped> .wrapper{ margin: 32px 0 40px; } </style>
使用
<v-scroll class="wrapper"> <!-- 下面的内容替换了默认插槽 --> <ul class="content"> <li v-for="(item, index) in onlineServices" :key="index"> <van-image width="7.5625rem" height="6.25rem" :src="item.icon" @click="$utils.goAction(item.code, $store.state.cityCode)"/> </li> </ul> </v-scroll> .wrapper { height: 200px; width: 710px; overflow: hidden; } .content { display: inline-flex; overflow: hidden; li { margin-right: 16px; } }
标签:插槽,better,props,组件,BScroll,true,scroll 来源: https://www.cnblogs.com/xiaoliziaaa/p/14214801.html