• vue项目better-scroll使用注意点


    1.应该在何时创建BScroll对象

    1)created : 中请求数据,ajax是异步的,这个时候可能mounted已经执行完了,也就是dom挂载完了,但数据还没请求回来,无法获取到内部元素(数据渲染出来的dom)高度. 无法渲染内部元素,无法滚动
    2)updated:数据发生改变时执行;数据改变,dom也要重新渲染,并执行updated,但无法保证是先dom渲染还是先updated,

    //解决:
    this.$nextTick(()={
        //操作
        this.scroll = new BScroll(this.$refs.className,{})
    })

    3)最佳方式:

    mounted() {
        this.scroll = new BScroll(this.$refs.scrollWrapper,{})
    }
    watch: {
        shuju() {
            this.$nextTick(() => {
                this.scroll.refresh();
            })
        }
    }

    广州品牌设计公司https://www.houdianzi.com PPT模板下载大全https://redbox.wode007.com

    2.拆分better-scroll组件

    scroller.vue

    vue 感知不到slot变化,但能感知数据变化

    " title="" data-original-title="复制">

    <template>
        <div ref="wrapper">
            <div>
            //vue 感知不到slot变化,但能感知数据变化
                <slot></slot>
            </div>
        </div>
    </template>
    <script>
        import BScroll from 'better-scroll'
        export default {
            props: ['shuju'],
            mounted() {
                this.scroll = new BScroll(this.$refs.wrapper,{})
            },
            watch: {  //保障数据加载dom渲染,刷新
                shuju() {
                    this.$nextTick(() => {
                        this.scroll.refresh();
                    })
                }
            }
        }
    </script>
    <style>
    
    </style>
  • 相关阅读:
    svn和git的优缺点
    idea 的MAVEN Lifecycle 基本用法
    递归SQL---树形结构
    基本:linux命令
    2017年9月22日01:42:08
    简述数据库的设计过程
    HelloH5+搭建
    【Java报错】Message: 3 字节的 UTF-8 序列的字节 2 无效
    css class嵌套
    【java报错】Could not instantiate listener
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/14102623.html
Copyright © 2020-2023  润新知