- 博客(12)
- 收藏
- 关注
原创 vue的响应式原理
通过 observe 将数据变成响应式,在 _render 渲染页面时,会获取所有被渲染所依赖的 data 数据,这时就走到了数据的 getter 方法,这里将 Dep.target,也就是当前的渲染 watcher 放到 Dep 的 subs 数组里,这样就完成了数据的依赖收集过程。当数据发生变化时,setter 里 dep.notify 通知这个数据的所有 watcher.update() 。在 update 中,先吧所有的 watcher 放到队列中,并在 nextTick 时,异步更新所有数据。
2021-01-07 12:06:39 144
原创 使用better-scroll时滑不动?看看是不是这个问题
首先看wrapperHeight的高度和内容的高度是什么?要满足 内容高度大于容器高度。hasVerticalScroll为true。scrollerHeight的高度要等于 wrapperHeight-contentHeight。一般是没有设置容器的高度或这内容高度不够。如果 内容高度大于容器高度,但是 hasVerticalScroll为false。scrollerHeight高度等于了wrapperHeight的高度。如果数据是异步获取的,这时应该把数据传给 scroll组件,
2020-12-11 18:48:33 873
原创 CSS图片高度自适应
通过这样写css,可以直接获取图片高度,而不用等到图片加载出再获得。position: relative;width: 100%;height: 0;padding-top: 70%;transfrom-origin: top;background-size: cover;通过 width:100%和 padding-top:70%控制图片的宽高比为10:7,当页面加载时,宽度确定了,高度也就确定了。图片宽度设置100%,页面加载时会存在高度塌陷的问题,可以使用padding-top来设置
2020-12-08 20:21:59 3265
原创 win10更新后闪屏处理方法
win10更新后闪屏处理方法在我的电脑上处理成功了,但是中途没有拍照,我把详细过程说一下。按下 Ctrl+Alt+Delete ,出现任务管理器选择的界面一直按着 Shift,同时点击右下角 关机 按钮,选择 重启 ,Shift 不要松。出现选项后选择 疑难解答。点击 高级选项。点击 卸载更新。点击 卸载最新的质量更新。然后就 选择用户,输入密码,确定 就行了。后面系统自动卸载和重启。重启后最好不要让 win10 再更新了,可以下载一个 windows 优化的软件,Dism++ 很好用。
2020-12-05 10:40:32 5630 3
原创 vue使用中的细节点
v-if当在input框中使用v-if时,如果输入了字符后,改变v-if的显示时,input中的内容不会变化,这是因为vue会尽量复用页面的内容,增加渲染效率,这时可以为每个input增加一个key值,这样vue发现key值不同便不会复用了。v-for使用v-for时,如果不想在外层添加一个div标签,可以使用template作为模版占位符,这个不会在页面中渲染。$set向对象增加属性值时,一种方法是整个改变对象的引用,另一种是通过vue实例.$set(对象,新属性名,新属性值)或Vue.set(
2020-12-05 10:38:20 367
原创 关于v-show和v-if遇到better-scroll出现错误的解决
v-show和v-if今天在写一个项目时,遇到了一个问题。使用了 better-scroll 来做页面滚动,首页进入后可以滚动,但是点击搜索框后出现搜索记录却无法滚动。查看 scroll 的打印发现 hasVerticalScroll: false,并且 scrollerHeight 和 clientHeight 都是 0,那就是都没有获得高度。最后把 v-show 改成 v-if 就可以了。问题出现原因:众所周知,v-show渲染了dom,只是把dom的style设置为:display:none ,
2020-12-05 10:27:22 610 2
原创 hexo部署时出现excepted token解决方法
hexo部署时出现json解析错误部署时出现 excepted token x in position,很奇怪,找到源代码有一句json.parse,打印了一下发现是某个json对象传入了json.parse。但是这个json对象还必须要有。最后想到了skip_render,发现已经配置了,但是还是渲染的了那些文件。skip_render: - "somedir/*"最后去github hexo的 issue 里找到了一个这个: - "somedir/**/*"怀疑是不是需要两个 **
2020-12-05 10:24:04 417
原创 关于Array.prototype.slice.call
关于为何在函数中使用Array.prototype.slice.call而不是直接用slice?经常会看到这种写法,在一个函数中使用,Array.prototype.slice.call(arguments,1); 除了防止传入的arguments有slice同名函数,还有其他什么用处吗?尤大的回答:arguments是每个函数在运行的时候自动获得的一个近似数组的对象(传入函数的参数从0开始按数字排列,而且有length)。比如当你 func(‘a’, ‘b’, ‘c’) 的时候,func里面获得的
2020-12-05 10:18:59 128
原创 CSS高度塌陷和BFC
高度塌陷当子元素浮动时,脱离了文档流,导致父元素高度撑不起来。这时可以通过在在子元素后面添加内容,并且清楚它的浮动来使其跟在浮动元素的后面,这样就可以撑起父元素的高度了。子元素加上下面这个 clearfix 类就可以了。clearfix::after { content: ''; display: block; clear: both;}相邻元素的外边距重叠子元素与父元素,当给子元素设置 margin-top 时,子元素会与父元素一起向下移动,解决方法时使两个元素外边距不重叠
2020-12-05 10:13:57 164
原创 当better-scroll遇到vue
使用better-scroll遇到的问题原来项目中只使用了better-scroll来做轮播图和滑动组件,但是头部和标签栏是固定的,只滑动下面部分,于是设置 scroll-warpper样式如下:.scroll-wrapper { position: absolute; top: 80px; left: 0; right: 0; bottom: 0;}但是想要实现下部组件与上部标签的联动,仅仅靠better-scroll就不够了,于是项目中按需引入了vant的的标签组件,来实现
2020-12-05 10:12:08 95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人