当前位置: 首页 > Web前端 > vue.js

vue3中的隐藏实用程序API

时间:2023-03-31 22:31:32 vue.js

在实际项目中,我们通常会封装一些工具类,比如判断数组、对象、函数等。。。但是vue3中已经内置了很多常用的工具功能,所以我们不用重新造轮子camelize转camel从“vue”导入{camelize};camelize(“foo-bar”);//fooBarhyphenate大写字母-connectionimport{hyphenate}from"@vue/shared";hyphenate("HelloWorld");//hello-worldcapitalize首字母大写import{capitalize}from"vue";capitalize("helloworld");//Helloworldremove删除数组指定的元素import{remove}from"@vue/shared";constarr=['aaa','bbb','ccc','ddd','eee']remove(arr,'bbb')//['aaa','ccc','ddd','eee']remove(arr,'eee')//['aaa','ccc','ddd']remove(arr,'aaa')//['ccc','ddd']判断对象导入{isArray,isMap,isSet,isDate,isFunction,isString,isSymbol,isPromise,isObject,//包含数组isPlainObject,//不包含数组}from"@vue/shared";isObject([]);//trueisObject({});//trueisObject(null);//falseisPlainObject([]);//falseisPlainObject({});//trueisPlainObject(null);//falseisOn判断事件i是否从"@vue/shared"导入{isOn};isOn("onClick");//trueisOn("点击");//falseisOn("onMove");//trueisOn("onmove");//falseisOn("aaaaaa");//falsenormalizeClass规范化类,可以传入字符串、对象、数组,最后返回一个字符串import{normalizeClass}from"vue";normalizeClass('container')//containernormalizeClass(['container','box','list'])//容器框listnormalizeClass({container:true,box:false,list:true})//容器列表//"itembtnemptyboxul"normalizeClass(['item',null,['btn','empty'],{box:true,ul:true,li:false}])normalizeStyle规范化样式,可以传入字符串,对象,数组,最后返回字符串或对象import{normalizeStyle}from"vue";normalizeStyle('宽度:100px;高度:100px')//宽度:100px;height:100pxnormalizeStyle(['width:100px','height:100px'])//{width:'100px',height:'100px'}//{width:'60px',height:'60px',color:'红色',顶部:'10px'}normalizeStyle(['width:100px;height:100px;color:red','width:60px;height:60px;top:10px',])mergeProps合并属性,合并规则:类合并成字符串,合并规则和normalizeClassstyle合并成字符串或对象,合并规则和normalizeStyle事件合并成数组。普通属性会直接覆盖import{mergeProps}from"vue";constprops1={class:'aaa',style:'width:100px',onClick:()=>{},zzzzz:'sss'}constprops2={class:'bbb',style:'height:100px',onClick:()=>{},zzzzz:'xxx'}constprops3=mergeProps(props1,props2)console.log(props3)isVNode判断虚拟节点是否import{isVNode}from"vue";isVNode(

hahaha
)//trueisVNode('hahaha')//falsecloneVNode克隆一个虚拟节点,同属性处理规则同mergePropsimport{cloneVNode}from"vue";constvnode1=hahaha
constvnode2=cloneVNode(vnode1,{class:'bbb',style:'height:100px'})vnode2;//哈哈哈
使用CssVars在组件根节点添加css变量,只在单文件组件中有效