# vue-at
<a href="https://we-demo.github.io/vue-at-vite-app/"><img width="76" height="20" src="https://img.shields.io/website?url=https%3A%2F%2Fwe-demo.github.io%2Fvue-at-vite-app%2F"></a> <a href="https://www.npmjs.com/package/vue-at"><img height="20" src="https://img.shields.io/npm/dm/vue-at.svg"></a> <a href="https://github.com/fritx/vue-at"><img width="90" height="20" src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" /></a> <a href="https://github.com/fritx/vue-at"><img width="84" height="20" src="https://img.shields.io/badge/license-MIT-blue.svg"></a> <a href="https://gitter.im/fritx/vue-at?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"><img width="92" src="https://badges.gitter.im/fritx/vue-at.svg" alt="Join the chat at https://gitter.im/fritx/vue-at"></a>
<img width="262" height="218" src="https://raw.githubusercontent.com/fritx/vue-at/master/WechatIMG1.jpeg"> <img width="262" height="218" src="https://raw.githubusercontent.com/fritx/vue-at/master/WechatIMG2.jpeg">
- [x] Chrome / Firefox / Edge / IE9~IE11
- [x] Plain-text based, no jQuery, no extra nodes
- [x] Content-Editable / Textarea
- [x] Avatars, custom templates
- [x] Vue3 / Vue2 / Vue1
- [x] Vuetify / Element UI / Element Plus
- [ ] Vue-CLI migration
- [ ] Vite migration
Playground: https://we-demo.github.io/vue-at-vite-app/<br>
Vue3 Docs: https://github.com/fritx/vue-at/tree/vue3#readme<br>
Vue2 Docs: https://fritx.github.io/vue-at/ or see below<br>
See also: [react-at](https://github.com/fritx/react-at)
## Motivation
[At.js](https://github.com/ichord/At.js) is awesome, but:
- It is based on jQuery and jQuery-Caret.
- It introduces extra node wrappers.
- It could be unstable on content edit/copy/paste.
Finally I ended up creating this.
**If you're using Vue3, read [branch vue3](https://github.com/fritx/vue-at/tree/vue3#readme) instead.**
```plain
npm i vue-at@next # for Vue3 (branch vue3)
npm i vue-at@2.x # for Vue2 (branch vue2)
npm i vue-at@1.x # for Vue1 (branch vue1-legacy)
npm i vue1-at # for Vue1 (branch vue1-new)
```
```vue
<template>
<at :members="members">
<div contenteditable></div>
</at>
</template>
<script>
import At from 'vue-at'
export default {
components: { At },
data () {
return {
members: ['Roxie Miles', 'grace.carroll', '小浩']
}
}
}
</script>
<style>
#app .atwho-view { /* more */ }
#app .atwho-ul { /* more */ }
</style>
```
## Using V-Model (Recommended)
With Content-Editable, `v-model` should be bound in `<at>` container.<br>
With Textarea, `v-model` should be bound in `<textarea>` itself.
```vue
<at v-model="html">
<div contenteditable></div>
</at>
<at-ta>
<textarea v-model="text"></textarea>
</at-ta>
```
## Textarea
```vue
<template>
<at-ta>
<textarea></textarea>
</at-ta>
</template>
<script>
// import At from 'vue-at' // for content-editable
import AtTa from 'vue-at/dist/vue-at-textarea' // for textarea
export default {
components: { AtTa }
}
</script>
```
```plain
npm i -S textarea-caret # also, for textarea
```
## Custom Templates
### Custom List
```vue
<template>
<at :members="members" name-key="name">
<template slot="item" slot-scope="s">
<img :src="s.item.avatar">
<span v-text="s.item.name"></span>
</template>
<div contenteditable></div>
</at>
</template>
<script>
// ...
members: [{
avatar: 'https://randomuser.me/api/portraits/men/2.jpg',
name: 'myrtie.green'
}, {
avatar: 'https://randomuser.me/api/portraits/men/8.jpg',
name: '椿木'
}]
</script>
<style>
#app .atwho-li { /* more */ }
#app .atwho-li img { /* more */ }
#app .atwho-li span { /* more */ }
</style>
```
#### Custom List with Vue 1.x
There is no "scoped slot" feature in Vue 1.<br>
Use a "normal slot" with `data-` attribute instead.
```vue
<!-- vue1-at for vue@1.x -->
<template slot="item">
<img data-src="item.avatar">
<span data-text="item.name"></span>
</template>
```
### Custom Tags
This gives you the option of changing the style of inserted tagged items. It is only supported for ContentEditable version, not Textarea.
```vue
<span slot="embeddedItem" slot-scope="s">
<span class="tag"><img :src="s.current.avatar">{{ s.current.name }}</span>
</span>
<!-- with Vue 2.6+ 'v-slot' directive -->
<!-- note at least two '<span>' wrapper are required to work -->
<template v-slot:embeddedItem="s">
<span><span class="tag"><img class="avatar" :src="s.current.avatar">{{ s.current.name }}</span></span>
</template>
```
## Used with 3rd-party libraries
### Vuetify v-textarea
```vue
<at-ta :members="members">
<!-- slots -->
<v-textarea v-model="text"></v-textarea>
</at-ta>
```
### Element-UI el-input
```vue
<at-ta :members="members">
<!-- slots -->
<el-input v-model="text" type="textarea"></el-input>
</at-ta>
```
没有合适的资源?快使用搜索试试~ 我知道了~
适用于 Vue 的 At.js .zip
共24个文件
js:5个
vue:4个
txt:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 53 浏览量
2024-12-02
04:40:40
上传
评论
收藏 60KB ZIP 举报
温馨提示
vue-at Chrome / Firefox / Edge / IE9~IE11基于纯文本,无 jQuery,无额外节点可编辑内容/文本区域头像、自定义模板Vue3 / Vue2 / Vue1Vuetify / Element UI / Element PlusVue-CLI 迁移Vite 迁移游乐场https://we-demo.github.io/vue-at-vite-app/ Vue3 文档 https: //github.com/fritx/vue-at/tree/vue3#readmeVue2 文档 https: //fritx.github.io/vue-at/或见下文另请参阅react-at动机At.js很棒,但是它基于 jQuery 和 jQuery-Caret。它引入了额外的节点包装器。内容编辑/复制/粘贴可能会不稳定。最终我完成了这个创作。如果您正在使用 Vue3,请阅读分支 vue3。npm i vue-at@next # for Vue3 (branch vue3)npm
资源推荐
资源详情
资源评论
收起资源包目录
适用于 Vue 的 At.js。.zip (24个子文件)
WechatIMG2.jpeg 20KB
.github
FUNDING.yml 444B
标签.txt 27B
src
At.scss 2KB
App.vue 6KB
main.js 286B
AtTemplate.vue 1KB
AtTextarea.vue 5KB
util.js 4KB
At.vue 13KB
LICENSE 1KB
webpack
demo.js 779B
prod.js 954B
base.js 1KB
.babelrc 1009B
package.json 2KB
资源内容.txt 761B
index.html 254B
.gitignore 60B
WechatIMG1.jpeg 22KB
static
awesome.svg 6KB
electron.svg 2KB
.npmrc 19B
README.md 5KB
共 24 条
- 1
资源评论
徐浪老师
- 粉丝: 8234
- 资源: 9590
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术资料分享MP2359很好的技术资料.zip
- 技术资料分享MP2359 AN很好的技术资料.zip
- 技术资料分享MMC-System-Spec-v3.31很好的技术资料.zip
- 技术资料分享MMCSDTimming很好的技术资料.zip
- 技术资料分享MMC-FAT16-File-System-Specification-v1.0很好的技术资料.zip
- 技术资料分享MDk如何生成bin文件很好的技术资料.zip
- 技术资料分享Keil用户手册很好的技术资料.zip
- 技术资料分享JPEG压缩编码标准很好的技术资料.zip
- 技术资料分享JPEG图像解码方案很好的技术资料.zip
- 技术资料分享IS62WV51216很好的技术资料.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功