AI取名大师 | 使得 uni-app 兼容 vue3 同名简写语法糖的 vite 插件

关于 AI 取名大师

借助豆包、通义千问、DeepSeek 等 AI 大模型,为您的宝宝、宠物、店铺、网名、笔名、项目、产品、服务、文章等取一个专业、有意义的名字😄。


开源地址:👉GitCode(国内友好)👈、👉GitHub👈 技术组合:Bun.js、Elysia.js、uni-app 体验地址:AI取名大师(H5版)、小程序搜索取名大师


特别注明:本系列文章仅为实战经验分享,并记录开发过程中碰到的问题😄,如有不足之处欢迎随时留言提出。


📣 同名简写语法

这是 vue 3.4+ 后更新的语法糖,如果属性名和变量名完全一致,Vue 允许你简写,详见官方文档。

写法 等价
v-bind:text="text" 完整写法
:text="text" v-bind 简写
:text 同名简写(implicit value)

示例:

html 复制代码
<script setup>
	const message = "Hello";
	const active = true;
</script>

<template>
  	<Comp :message :active />
	<!--甚至可以这样写-->
	<Comp v-bind="{ message, active }" />
</template>

😔 在小程序中不支持

同名简写语法,用过就觉得很香,习惯后怎么舍得改回来。可惜小程序(尤其是微信小程序)不支持该语法糖,使得编译不通过,只能一个个把同名简写改成传统模式😔。

🔧 搞一个插件

功能

专门为 uni-app 修补 Vue3 同名简写,就是 Vue SFC 进入 uni-app 小程序编译之前,用一个自定义 Vite 插件把 :text 自动转换为 :text="text"

原理简介

  • Vue 编译器对 :text 是合法的,因为它是 Vue3 的同名简写;
  • 但 uni-app 的小程序编译器(特别是微信)不支持,会报错;
  • 我们可以在 Vite 阶段 预处理 .vue 文件的 template 源码:
    • 找到所有 :<attr> 且没有 = 的情况;
    • 转换成 :<attr>="<attr>"。

设计原则

  • ✔ 只处理
相关推荐
OpsEye18 分钟前
大模型账单对账难:不同厂商 Token 统计口径差异怎么处理
javascript·ai编程
全栈项目管理程序猿19 分钟前
ArcGIS JS 基础教程(32):体元系列 - VoxelSlice 体元切片
前端·javascript
流烟默2 小时前
SSE 实战:在 SpringBoot + Vue 项目中零依赖实现轻量级实时消息推送
vue.js·spring boot·后端·sse
Hilaku3 小时前
AI 流式输出都用 SSE,什么时候必须换 WebSocket?
前端·javascript·程序员
奇牙coding3 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai
执子念的飞鱼3 小时前
纯前端预览 275 种文件格式是怎么做到的
前端·vue.js·react.js
不简说3 小时前
AI 帮你画模板、点一下就云打印:sv-print 这三个月都干了啥
前端·javascript·人工智能
大明二代4 小时前
从零构建 Mastra RAG MVP:DeepSeek、SiliconFlow 与 PostgreSQL/pgvector 实战
javascript·数据库·人工智能
结局无敌4 小时前
React Native for OpenHarmony 实战:三方库 react-native-paper 的鸿蒙化适配指南
javascript·人工智能·深度学习·react native·react.js·ecmascript·harmonyos
铁皮饭盒4 小时前
CPU就行, 老照片变清晰, 本地部署582mb腾讯的模型, 本地部署, 过节了给长辈们变个小魔术
前端·javascript·后端