hello云胜

技术与生活

0%

微信小程序知识点

小程序的双线程模型

image-20210919203336409

  1. 视图的更新是怎么做到的?

    通过setData(),setData先将 数据转化为字符串,接着将这个字符串和代码拼成js脚本,然后把这个脚本传给evaluateJavascript这个原生方法,然后执行。

  2. 使用setData可能遇到的问题?

    因为是双线程的。页面滑动的卡顿问题。

    image-20210919204108954

更新一个大列表时可能遇到

  1. wxs语言

    wxs可以在wxml文件中写wxs脚本,直接在视图线程里完成。提高效率。

视图线程的编译过程

image-20210919204446289

虚拟DOM

image-20210919204641368

小程序把原生组件放在一般视图组件上面

逻辑线程的实现

生命周期

组件相关

自定义图标

icon可以和文本进行混排

建议使用阿里巴巴的iconfont.cn网站下载使用

小程序中建议使用ttf和woff格式的字体

也可以使用svg图片,然后将svg转成base64字符串,然后就乐意在小程序里直接使用

image-20210919223023128

progress进度条

1,开发一个下载文件的动态的进度条

image-20210920071928814

2,进度条如何设置圆角

1
<process border-radios="5" percent="20" show-info>

这设置的是进度条外框的圆角

hack方法:

image-20210920072407267

在微信开发者工具的目录中找到本地样式表,通过在页面中重写样式实现

3,已经加载完的进度条,让其重新加载

连续调用2次setData

4,实现一个环形进度条

自定义一个组件

image-20210920072909472

image-20210920073117446

5,进度条右边的百分比修改样式

使用内联样式

rich-text富文本

rich-text 组件内屏蔽所有节点的事件。

如何预览并下载rich-text中的图片?

因为rich-text 组件内屏蔽所有节点的事件。所以无法给img设置tap监听。

做法是,监听整个rich-text的tap,通过解析event参数中的pagex,pagey参数的值,大体判断用户点击的是哪一张图片。

使用wx.预览并下载图片

图片列表要提前解析nodes得到。

解决图片间的间隙问题

rich-text中的两张图片间默认是有一个缝隙的。这是样式问题

解决方法是,给node节点加一个style,设置为font-size:0;display:block,

直接解析html代码

手动维护nodes节点比较麻烦,有一个开源parser组件可以直接解析html代码

项目中建议使用这个代替rich-text

view

hover-class:指定按下去的样式类,可以有一个单击效果

hover-stop-propagation:阻止本节点的祖先节点出现点击态,不会阻止bind事件冒泡。

btn里也可以用hover-class

左滑删除功能

moveable-area和moveable-view,功能比较简陋

使用npm第三方包:

wechat-miniprogram/slide-view: weapp custom component – slide-view (github.com)

npm init -y

npm install –save miniprogram-slide-view

工具 –》 构建npm

使用

但是,已经不维护了。可以使用weui-miniprogram的mp-slideview组件

可以直接在小程序中使用,并且使用扩展声名的方式使用不占用代码包大小

在app.json中声明

1
2
3
"useExtendedLib": {
"weui": true
}

生成海报

painter组件

wxml-to-canas组件

商品导航侧边栏

1
2
npm i @miniprogram-component-plus/vtabs --save
npm i @miniprogram-component-plus/vtabs-content --save

image-20210924224110732

自定义实现多级选择器

微信原生组件提供了picker,但是样式不能自己控制。通过picker-view实现自定义的多级选择器

image-20210925092116851

并且通过js和wxs实现了两个版本,wxs相对来说效率更高

竖向slider

小程序原生组件的slider只有横向

image-20210925120425390

自定义导航

图片作背景图并适配所有机型

建议背景图大小 750 x 1334 分辨率72

用css实现

图片裁剪

1977474741/image-cropper: 💯一款功能强大的微信小程序图片裁剪插件 (github.com)