ByteNoteByteNote
分享函数没有挂上钩子
字

字节笔记本

2026年10月7日 · 约 4 分钟读完

分享函数没有挂上钩子

API中转
¥120

页面被要求改成组合式脚本,并使用原子类和指定的组件库。生成结果里,搜索组件的导入写了一条带连字符的具名导入。连字符不能出现在导入的名字里。这行在语法上就不成立,脚本无法解析,后面的页面逻辑不会执行。

导入先要能解析

模板里的标签是 wd-search。双向绑定到 searchData,占位文字是搜索你要的内容,搜索事件调用 search。这个标签通常靠组件库的自动注册出现,而不是靠把标签字面当成具名导出。

连字符不能写进具名导入

自动注册能解析这个标签时,删掉那行无法解析的导入。解析不了,再按该库文档里的组件名导入。不要按标签上的连字符去解构一个包。

searchData 用 ref 包了一份空字符串。这一行本身没有问题。搜索函数收到值之后跳到列表,查询串的键是 searchValue。值来自搜索框,不是写死的词。

分享被写成了同名常量。返回的标题是空字符串,图片地址也是空字符串,路径是首页再加 shared=true。成功和失败只把结果打成日志。

平台要调用的是注册过的分享钩子。一个同名常量不会自动成为钩子。应从这个框架的应用包里引入分享钩子并调用它,在回调里返回标题和路径。

返回对象里的成功和失败函数,不是这个钩子要的字段。钩子要的是标题、路径和图片。这两个函数待在返回值里,不会因此被平台调用。

标题为空时,对方看到的卡片没有字。空标题要改成页面真正要展示的句子。图片地址没有就不要填空字符串充数,交给平台默认。

另外几个点击是普通跳转。对比进详情,查询串里写死了一个数字编号。智能搭配只弹出敬请期待,图标是 none,没有跳转。创建组合、商品列表和模拟系统各自进入固定页。

这些点击不依赖分享钩子。修分享时不要改它们的目的地。写死的编号换一套数据会进到错误的一项,应改成参数,而不是留在源码里的常数。

装饰图来自原来的页面,主机和文件名都不要抄进新仓库。标语是一站式信息服务平台。转换时保留你自己的文案,外链图片换成自己的资源。

搜索标签能渲染之后,再点搜索,确认列表收到查询串。分享改成钩子之后,用一次真实的转发看卡片标题,不要只看常量还在不在文件里。

常量不会变成钩子

脚本顶部从 vue 引入 ref。这一行是成立的。不成立的是下一行对组件库的具名导入。语法错误会挡住整个脚本,包括后面写对了的跳转。

分享要调用钩子而不是同名常量

先删掉或改写那行导入,让文件能被解析。再看搜索框是否出现。框不出现,查自动注册的组件前缀,而不是再试一次带连字符的导入。

组合式脚本里的普通函数就是普通函数。名字即使和生命周期一样,也不会被收集。必须调用框架提供的注册函数。

旧写法里分享写在页面选项对象上,框架会读取那个键。改成组合式脚本之后,选项对象没有了,同名常量留在模块里,没有人来读。

空图片地址和空标题都是字符串,不是缺省。缺省是不写这个字段。写成空字符串,等于明确交给对方一张没有字、没有图的卡片。

shared=true 只说明这次打开来自分享。它不负责注册钩子。查询参数可以留,注册要单独做。

敬请期待是提示。图标 none 表示不显示成功或失败图标。不要把这个提示改成跳转,除非产品已经有了对应页。

对比详情里的编号是常数。列表、创建和模拟系统的地址是固定路径。固定路径可以留在点击函数里。常数编号不要和固定路径混为一谈。

原子类写在标签上,例如最小高度、白底、间距和字号。这些类是否生效取决于原子类引擎有没有扫描到这个文件。分享钩子失败时,不要先怀疑这些类名。

搜索事件的参数就是输入值。把它放进查询串时做一次编码,避免值里的特殊字符截断地址。对话里的模板字符串是直接拼接。值若来自用户输入,拼接前要编码。

转发成功和失败的日志用 JSON.stringify。那是常量内部的函数。钩子没注册时,这两行不会在转发时执行。看不到日志,先查注册,不要先查 stringify。

页面顶部的背景和标志是展示。展示资源缺失只影响头部,不影响分享是否注册。两件事分开验收。

验收顺序是:文件能解析,搜索框出现,搜索能带上查询值,分享卡片有标题。编号从参数来。装饰图不引用原来的主机。

相关文章

分享: