button{border:none;大纲:无;右边距:10px;背景色:#2ecc71;白颜色;填充:5px10px;;}作者:MattMaribojoc译者:前端小智来源:medium有梦想,有干货,微信搜索【大千世界】关注这个还在刷碗刷碗智慧。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。VueUse是AnthonyFu的一个开源项目,它为Vue开发者提供了大量适用于Vue2和Vue3的基础CompositionAPI实用函数。它为常见的开发人员用例提供了数十种解决方案,例如跟踪引用更改、检测元素可见性、简化常见的Vue模式、键盘/鼠标输入等。这是一种节省开发时间的好方法,因为我们不必添加所有这些标准功能都是我们自己的,只需使用它(再次感谢大佬们)。我喜欢VueUse库,因为在决定提供哪些实用程序时,它确实将开发人员放在首位,而且它是一个维护良好的库,因为它与当前版本的Vue保持同步。VueUse有哪些实用方法?如果您想查看每个实用程序的完整列表,建议查看官方文档。但总结一下,VueUse中有9类函数。动画(animation)——包含易于使用的过渡、超时和计时功能浏览器(browser)——可用于不同的屏幕控制、剪贴板、首选项等组件(component)——提供不同组件方法的简写方式传感器(Sensor)——用来监听不同的DOM事件、输入事件和网络事件State(状态)——管理用户状态(全局、本地存储、会话存储)ETC。观察——更高级的观察者类型,如可暂停观察者、放弃观察者和条件观察者杂项——事件、WebSockets和网络工作者的不同类型的功能首先,它仅通过一个包就与Vue2和Vue3兼容!安装VueUse有两个选项:npm或CDNnpmi@vueuse/core#yarnadd@vueuse/core推荐使用npm,因为更容易理解,但是如果我们使用CDN,可能会通过window.VueUse访问。使用npm,你可以通过解构得到想要的方法:import{useRefHistory}from'@vueuse/core'useRefHistory跟踪响应数据的变化useRefHistory跟踪对ref所做的每一个变化,并将其存储在数组中。这使我们能够轻松地为应用程序提供撤消和重做功能。让我们看一个示例,其中我们制作了一个可撤销的文本区域。第一步是在没有VueUse的情况下创建我们的基本组件——使用ref、textarea和用于撤消和重做的按钮。button{border:none;大纲:无;右边距:10px;背景色:#2ecc71;白颜色;填充:5px10px;;}接下来,导入useRefHistory,然后使用useRefHistory从文本中提取历史、撤消和重做属性。import{ref}from'vue'import{useRefHistory}from'@vueuse/core'consttext=ref('')const{history,undo,redo}=useRefHistory(text)每当我们的ref改变时,更新history属性,一个侦听器被触发。为了了解幕后发生的事情,我们打印出历史内容。并在点击相应的按钮时调用撤销和重做函数。button{border:none;大纲:无;右边距:10px;背景色:#2ecc71;白颜色;填充:5px10px;;}直接,运行一下,效果如下:有不同的选项,给这个函数增加更多的功能。比如我们可以对反应对象进行下钻,像这样限制历史记录的条数。const{history,undo,redo}=useRefHistory(text,{deep:true,capacity:10,})onClickOutsideoffmodalonClickOutside检测元素外部的任何点击。根据我的经验,此功能最常见的用例是关闭任何模式或弹出窗口。通常,我们希望我们的模式能够阻止网页的其余部分,以引起用户的注意并限制错误。但是,如果他们确实在模态之外单击,我们希望它关闭。要做到这一点,只有两个步骤。为要检查的元素创建模板引用使用此模板引用运行onClickOutside这是一个使用onClickOutside弹出窗口的简单组件。公司本身是一家非常成功的公司。但是通过拒绝身体的某些东西,我们指责他跟随它,让它从腐败或劳力的需要中诞生,但让它们都不是!那些指责他的人的所有好处?