Borrowing it
Nothing to install: this file belongs to oyjt/uniapp-vue3-template. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/oyjt/uniapp-vue3-template/main/.agents/skills/uview-plus/SKILL.mdgit clone --depth 1 https://github.com/oyjt/uniapp-vue3-templateWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/oyjt/uniapp-vue3-template/uview-plus)<a href="https://agentmods.dev/skills/oyjt/uniapp-vue3-template/uview-plus"><img src="https://agentmods.dev/badge/skills/oyjt/uniapp-vue3-template/uview-plus/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/oyjt/uniapp-vue3-template/uview-plus"><img src="https://agentmods.dev/badge/skills/oyjt/uniapp-vue3-template/uview-plus.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00117 | $0.01703 |
| Opus 5.5 | $0.00047 | $0.00681 |
| Sonnet 5.5 | $0.00023 | $0.00341 |
| Haiku 4.5 | $0.00012 | $0.00170 |
Grade A, and why
uview-plus scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to uview-plus — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.
uview-plus
uni-app 生态的 Vue3 组件库(fork 自 uView2)。139 个组件加一套 JS 工具库(uni.$u),一套代码覆盖 H5、微信/支付宝/头条/QQ 小程序、Android/iOS App(vue 与 nvue)、鸿蒙。
包的位置:npm 装法在 node_modules/uview-plus/,HBuilderX 装法在项目里的 uni_modules/uview-plus/。下文的相对路径都以这个包根目录为准,遇到不确定的用法优先读包内源码而不是凭印象写。
先确认接入完整
写页面之前先确认宿主项目这 4 处都配好了。缺任意一处的典型症状就是"组件写了不渲染""样式全丢""属性不生效",这类问题九成不是组件 bug:
pages.json的easycom.custom里有 uview-plus 的三条规则main.js里app.use(uviewPlus)App.vue首行@import "uview-plus/index.scss";,且<style lang="scss">uni.scss里@import "uview-plus/theme.scss";
新项目接入、或上面任意一条没配,读 references/setup.md(npm 与 uni_modules 两种装法都有,含 manifest、tsconfig、nvue 的额外要求)。
硬规则
- 不要
import组件。easycom 会按规则自动引入,模板里直接写<up-button text="按钮"></up-button>。手写 import 反而容易和 easycom 规则打架。 - 前缀用
up-。u-、u--仍然兼容(三条 easycom 规则都指向同一份components/u-*),但u-会和 uni-app 官方组件抢名字(例如u-slider),新代码统一用up-,同一项目里不要混用。 - 组件名从
references/components.md里挑,不要凭印象拼。清单里没有的名字就是不存在,结果是编译报错或者整块不渲染。 - 属性、事件、插槽不要猜。一手说明在包内:
components/u-<名字>/u-<名字>.vue顶部 JSDoc 的@property/@eventcomponents/u-<名字>/props.js是属性的真实默认值(约四分之一的组件没有这个文件,属性直接写在.vue里)types/comps/<驼峰名>.d.ts是 TS 类型(覆盖常用组件,不是全部)
- 图标名从
references/icons.md里挑。<up-icon name="star-fill"></up-icon>,名字写错不会报错,只是渲染空白。要用清单外的图标,走customIcon配置自己的字体图标。 - 双向绑定分两类,搞反了就是"弹窗打不开"或"输入框不联动":
- 值类组件(
up-input、up-checkbox-group、up-rate、up-slider、up-datetime-picker…)内部是modelValue,写v-model="xxx" - 显隐类组件(
up-popup、up-action-sheet、up-modal、up-picker、up-cascader、up-tooltip、up-guide、up-swipe-action-item)内部是show+update:show,写v-model:show="show" - 其余组件先看它的
emits数组再决定,不要想当然。
- 值类组件(
- 数值型尺寸的单位取决于
config.unit(默认px,项目可全局改成rpx)。要确定的单位就把单位写全:width="80px"。 - 组件内部尽量不要依赖宿主全局 class。需要覆盖样式时优先用组件自身的
customStyle/ 具体属性,小程序有样式隔离,全局类不一定命中。
一个可运行的样板
<template>
<view>
<up-navbar title="表单" :autoBack="true"></up-navbar>
<up-form ref="formRef" :model="form" :rules="rules" labelWidth="80">
<up-form-item label="手机号" prop="mobile" borderBottom>
<up-input v-model="form.mobile" placeholder="请输入手机号" border="none"></up-input>
</up-form-item>
</up-form>
<up-button type="primary" text="提交" @click="submit"></up-button>
<up-popup v-model:show="show" mode="bottom">
<view style="padding: 24px;">提交成功</view>
</up-popup>
</view>
</template>
<script setup>
import { reactive, ref } from 'vue'
const formRef = ref(null)
const show = ref(false)
const form = reactive({ mobile: '' })
const rules = {
mobile: [{ required: true, message: '请输入手机号', trigger: ['blur', 'change'] }]
}
function submit() {
formRef.value
.validate()
.then(() => {
show.value = true
})
.catch(() => {
uni.$u.toast('请检查表单')
})
}
</script>
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 96 lines · 117 tokens per session scan A 7653a2abd6b9
uview-plus is a skill published in the GitHub repository oyjt/uniapp-vue3-template (628 stars, last pushed 11d ago), licensed MIT. It adds 117 tokens to every session and 1,703 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to uview-plus, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
slidev
Create and present web-based slidedecks for developers using Slidev with Markdown, Vue components, code highlighting, animations, and interactive features. Use when building technical presentations, conference talks, code walkthroughs, teaching materials, or developer decks.
v3-create-crud
A page generator for standard create, read, update, and delete screens, commonly called CRUD screens. It uses Element Plus, a Vue user-interface library, to build tables, searches, pagination, forms, and delete confirmations.
v3-upsert-store
A workflow for creating or updating Pinia stores, which are shared state modules in Vue applications. It requires the store name, state fields, types, initial values, persistence choices, and actions.
v3-use-composables
Documentation for reusable Vue functions in a project, covering device detection, asynchronous dropdown data, loading screens, pagination, routing, themes, page titles, and watermarks.
native-to-weapp-vite-wevu-migration
A step-by-step guide for gradually moving native WeChat, Alipay, or Douyin mini-programs to weapp-vite, with an optional later move to Vue single-file components.
weapp-vite-vue-sfc-best-practices
A Chinese-language guide to writing Vue single-file components for weapp-vite mini-program projects. It covers templates, scripts, page metadata, component declarations, and platform differences.