惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
V2EX - 技术
V2EX - 技术
T
Troy Hunt's Blog
TaoSecurity Blog
TaoSecurity Blog
Attack and Defense Labs
Attack and Defense Labs
SecWiki News
SecWiki News
M
MIT News - Artificial intelligence
N
News and Events Feed by Topic
Help Net Security
Help Net Security
IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
The Last Watchdog
The Last Watchdog
Martin Fowler
Martin Fowler
Hacker News: Ask HN
Hacker News: Ask HN
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
H
Heimdal Security Blog
B
Blog
Blog — PlanetScale
Blog — PlanetScale
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Threat Research - Cisco Blogs
I
InfoQ
腾讯CDC
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Know Your Adversary
Know Your Adversary
Cloudbric
Cloudbric
Project Zero
Project Zero
T
Tor Project blog
小众软件
小众软件
博客园 - 司徒正美
www.infosecurity-magazine.com
www.infosecurity-magazine.com
H
Help Net Security
Webroot Blog
Webroot Blog
量子位
NISL@THU
NISL@THU
Schneier on Security
Schneier on Security
Google Online Security Blog
Google Online Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
月光博客
月光博客
宝玉的分享
宝玉的分享
V
V2EX
T
Tailwind CSS Blog
Spread Privacy
Spread Privacy
G
Google Developers Blog
K
Kaspersky official blog

Oskyla 烹茶室

修复 Joplin on KDE 菜单栏显示问题 Copy Fail:Linux 内核 2017 年至今的高危漏洞(附临时缓解方案) | CVE-2026-31431 Hermes Agent — 在 K3s / K8s 中运行指南 在 K3s 节点上安装并使用 nerdctl Mouser:轻量开源的罗技鼠标驱动替代方案 Claude Opus 4.7:优缺点与评测信息汇总 openFuyao NPU-Operator故障排查 openFuyao 2603 共测测试报告 openFuyao InferNex AI推理集成部署 310P(300I Pro) 环境问题记录及解决 ceph mon Operation not permitted 问题解决 Ascend 310P + openFuyao + NPU-Operator 故障排查 KDE Plasma6 禁用全局菜单,恢复正常应用菜单 终极指南:在 Linux 裸机服务器上快速部署 Moltbot (原 Clawbot) 并集成飞书 Windows 配置 Claude Code 解决 settings.json 不生效 Windows 配置 Claude Code 全流程 2025-12-31 | 年终总结 AI 生图精品提示词|第二期:城市星球 AI 生图精品提示词|第一期 Kubernetes kubectl --raw 使用指南 彻底解决阿里云和 tailscale 冲突 2025-10-21 | 沉淀思维 macOS 单独为鼠标或触控板开启自然滚动 2025-10-16 | 负载高低 2025-10-15 | 睡眠周期 2025-10-14 | 转换情绪与独立观点 go 拉取 gitcode.com 私有 mod Git 将某个文件恢复到其他分支的状态 SSH 通过跳板机连接 lxc 使用 chronyc 构建 ntp 服务 2025-10-13 | 独立思考于未来能源 2025-10-12|AI Review 及高质量工作流 2025-10-11 | 人生阶段 2025-10-10 | AI Logo | 远程操控 AI 2025-10-09 | 去班味|银杏|域名 2025-10-08 2025-10-07 2025-10-06 2025-10-05 优秀的 SubReddit 清单 Synology 群晖重置 Syncthing 密码 让 LLM 看到真实世界的 Playwright MCP 磁盘占用分析利器 ncdu 自建 gitlab 徽标问题导致项目 500 问题解决 harbor Chartmuseum helm 图表缓存刷新 grep exclude 排除 Debian 11 + PVE LACP Mac 冲突问题调查与解决方案 Claude Code 实用技巧 CentOS 7 重置 root 密码 telnet 如何退出 kubernetes 的挂载传播(mount propagation)机制 vim 将命令输出到当前位置 harbor 替换 ssl 证书 AI提效之使用 cherry-studio + k8sgpt 实现 AI 巡检 k8s Claude Code Subagents 快速开始 《我看见的世界:李飞飞自传》 Lyra - AI Prompt Optimization Specialist Linux 自签名 CA 证书安装方法 超级玛丽、魂斗罗等经典小游戏聚合站 | PlayUnb 个人业余开发项目清单 快速选出收益最高的理财产品 | finance-calculator 苹果液态玻璃风格图像生成和模拟器 | LiquedGlass.icu Linux 进程绑定NUMA节点或CPU核心 判断GPT是否降智的几个问题 Harmony next hap 安装 名侦探柯南贝尔摩德出场集数 k3s k8s 快速部署轻量节点监控方案 beszel k3s-k8s 实现 DevOps 方案横向对比 k8s 配置访问私有镜像仓库 GoAccess 分析多网站日志方法 Octant - 以开发人员为中心的开源 Kubernetes Web 界面 Tailscale 自建 DERP 并配置 SSL 完整教程 OpenManus 使用记录 Plausible 缺失 location 信息的研究 解决 Nginx Ingress returns 413 Entity Too Large 绘图模型效果对比之城市气象 【转】k8s 认知路线 OpenFOAM 两大分支的详细比较 第一个 CUDA 程序之矩阵运算计算效能对比 Archlinux KDE Apache JMeter 配置高分屏缩放 解决 gitlab-runner 移除残留文件 permission denied nginx-ingress 配置路由 302 k8s 触发 pod 重新拉取镜像平滑升级的方法 Clickhouse 迁移后 permission denied 问题解决 Linux CPU 运行模式及功耗分析 Linux vim vi 翻页跳转命令快捷键 git 拉取所有 branch 和 tag 到本地并推送到远程 Rails 性能分析工具 rack-mini-profiler 和 bullet 全球国家、城市、地区开源数据库 Rails Active Record 常用命令 Rails Rake 简介与编写 如何调试 Vim 脚本 名侦探柯南松田阵平出场集数(最新1069话) 名侦探柯南妃英理出场集数(最新1069话) 《名侦探柯南》官方人气投票结果 名侦探柯南TV安室透出场集数(最新1110话) 名侦探柯南TV赤井秀一出场集数(更新至1194话) [转]名侦探柯南TV主线集数整理(截止1165集) 架构风格总结 [转译] 如何成为一个好的开发者? 【影评】名侦探柯南·零的执行人
《微信小程序开发入门与实践》 - 雷磊
Tianlun Song · 2022-12-17 · via Oskyla 烹茶室

本文 首发于 🌱 煎茶转载 请注明 来源

微信小程序开发入门与实践 雷磊 53个笔记 ◆ 前 言 小程序中没有DOM,请放弃“首先获取DOM,

再操作DOM”的思维 替代DOM操作的方法是“数据绑定

微信小程序开发入门与实践 雷磊 53个笔记

◆ 前 言

小程序中没有DOM,请放弃“首先获取DOM,再操作DOM”的思维

替代DOM操作的方法是“数据绑定”。控制组件显示隐藏、切换CSS样式、控制滚动条,这些很容易用DOM思维思考常见功能在小程序中都是通过“数据绑定”实现的

小程序运行在一个JSCore中,它本身不支持Web中的window及DOM对象

一本书是永远不可能替代官方API文档的。

◆ 第1章 微信小程序简介

除了游戏和直播,微信官方并没有明确限制你不能做什么类型的小程序

MINA是官方小程序的内部开发代号,也是小程序运行框架的别名

◆ 第3章 从第一个简单的“Welcome”页面开始小程序之旅

根目录下面有3个文件:app.js、app.json和app.wxss。一个小程序项目必须有这3个描述App的文件,它们必须放在应用程序的根目录下

pages文件夹下就有2个页面,分别是index页面和logs页面

每个页面可以由4个文件构成,分别是:.js、.wxml、.wxss和.json文件

不同的是wxml文件里的标签元素不可以使用HTML标签,只能使用小程序自己封装的一些组件

实际上小程序的样式编写语言就是CSS,只是把.css文件换成了.wxss文件

小程序的4种页面级别文件同3个应用程序级别文件相比,多出了一个wxml页面标签文件

要显示welcome这个页面,必须让小程序的MINA框架知道这个页面的“存在”以及这个页面的具体位置(文件路径)

MINA框架将会自动去寻找页面路径,并将页面的.json、.js、.wxml和.wxss这4个文件进行整合

即使我们的welcome页面中没有任何JavaScript代码,依然需要在welcome.js中主动调用一下Page()方法

welcome.json文件同样不可以为空,即使你目前不想在.json文件中配置任何属性,也需要加入一个空的{}

小程序官方推荐的布局方式:Flex布局

小程序的大小不能超过1MB,超过则无法真机运行和发布项目

[插图]

本地资源在wxss中是无法使用的

早期时候,主流的浏览器对Flex布局的支持并不完善,造成了很多开发者不知道有这种布局的存在或者使用非常少,我们还是习惯使用传统的position和float属性来布局

Flex也称为“弹性布局”,主要作用在容器上

使用display:flex将这个view变成了一个弹性盒子

使用flex-direction这个属性指定view内元素的排列方向

首先要了解一个Flex布局非常重要的概念:轴。

.container样式中的属性align-items: center,可以让三元素水平居中

在小程序里,长度单位既可以使用rpx,也可以使用px

rpx可以使组件自适应屏幕的高度和宽度

建议以iPhone 6的宽度750个物理像素作为标准,来做设计图

保持页面元素之间的分布可以保持“一定的比例关系”,这种情况下应该使用rpx。

如果border动态变化,那么它会在屏幕尺寸较大的手机上变得很粗,这并不是我们想要的效果

小程序的模拟器选择项下,给出了每种机型的分辨率。要强调的是,这里的分辨率指的是逻辑分辨率pt,而非物理分辨率

在container view的外边,小程序还有一个默认的容器元素:page。

window配置可项用来设置小程序的状态栏、导航栏、标题和窗口的背景色

书籍绝大多数是用来引导入门和分享思想的,它不应该替代官方的API文档

◆ 第4章 文章列表页面

数据绑定是小程序中最重要的概念,它是和传统的Web网页编程相比最大的不同

小程序的image组件提供了4种缩放模式和9种裁剪模式

小程序里强制规定,只允许有最多五层父子页面

建议页面最多不要超过3层。

redirectTo不存在这个问题,因为当跳转到另一个页面后,上一个页面被强制卸载掉了。

◆ 第5章 模块、模板与缓存

还需要使用module.exports向外部暴露一个接口。

小程序也提供了一个称作模板的技术来支持对wxml组件的封装,但是这种封装仅仅只是wxml的代码片段

就必须消除template对于外部变量名的依赖,可以使用扩展运算符“…”展开传入对象变量来消除这个问题

import需要先引入template,然后再使用template;但include不需要预先引入,直接在需要的地方引入模板即可。

include模式非常简单,就是简单的代码替换,不存在作用域,也不能像import一样使用data传递变量

如果模板仅仅是静态wxml,不涉及数据的传递,可以使用include。但如果模板涉及数据绑定,还是建议使用import

引用样式文件的语法是@import “src”。

页面的JS文件中,我们使用Page(object)来注册页面,并在object中指定页面的生命周期函数等。同样,可以在app.js文件中使用App(object)来注册小程序,并在object中指定小程序的生命周期函数等

最好的初始化数据库的时机是在应用程序启动时

小程序的本地缓存有容量上限,最大不允许超过10MB

在处理缓存相关问题时,开发者要保持头脑清醒,否则有时候一个小小的缓存没更新的问题,将浪费开发者大量的时间

JavaScript里并不是没有面向对象,只不过它是用原型链的方式来实现对象的继承机制

◆ 第6章 文章详情页面

在template上注册事件是无效的