元数据与脚本
如何在组件中声明页面标题与元信息?
- 元数据提升: 合适的 title、meta 与 link 可在组件附近声明,由 React 放到文档 head;不是任意标签和任意属性组合都具备相同提升行为;
- 标题内容: title 接收单个字符串,插值时先拼出字符串,避免多个字符串与数字子节点形成数组;
- 页面唯一性: 同时渲染多个互相冲突的 title 或描述元数据会造成不确定结果,应由路由或页面层明确所有者;
const metadata = (
<>
<title>{`商品 ${product.name}`}</title>
<meta name="description" content={product.summary} />
</>
);
异步脚本的提升与去重有哪些限制?
- 脚本条件: 外部脚本的 src 与 async 等条件决定是否进入特殊管理,不能把所有 script 都视作相同资源行为;
- 属性更新: 已执行或已插入的脚本不会因修改 props 自动重新运行,卸载组件也不会撤销已经执行的脚本;
- 加载选项: crossOrigin、integrity、nonce 和 fetchPriority 等需要与资源发布及安全策略匹配,不随意复制配置;
const script = <script async src="/analytics.js" />;