vue3 中隐藏的实用API

简介: 在实际项目中,我们通常会封装一些工具类,如判断数组、对象、函数等……然而在 vue3 已经内置了很多常用的工具函数,因此我们不必再重复造轮子

vue3


camelize骆驼

import { camelize } from"vue";
camelize("foo-bar"); // fooBar

hyphenate-

import { hyphenate } from"@vue/shared";
hyphenate("HelloWorld"); // hello-world


capitalize

import { capitalize } from"vue";
capitalize("hello world"); // Hello world


remove

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']


import {
isArray,
isMap,
isSet,
isDate,
isFunction,
isString,
isSymbol,
isPromise,
isObject, // 包括数组isPlainObject, // 不包括数组} from"@vue/shared";
isObject([]); // trueisObject({}); // trueisObject(null); // falseisPlainObject([]); // falseisPlainObject({}); // trueisPlainObject(null); // false


isOn

import { isOn } from"@vue/shared";
isOn("onClick"); // trueisOn("onclick"); // falseisOn("onMove"); // trueisOn("onmove"); // falseisOn("aaaaaa"); // false


normalizeClassclass

import { normalizeClass } from"vue";
normalizeClass('container') // containernormalizeClass(['container', 'box', 'list']) // container box listnormalizeClass({ container: true, box: false, list: true }) // container list// "item btn empty box ul"normalizeClass([
'item',
null,
    ['btn', 'empty'],
    {
box: true,
ul: true,
li: false    }
])


normalizeStylestyle

import { normalizeStyle } from"vue";
normalizeStyle('width: 100px; height: 100px') // width: 100px; height: 100pxnormalizeStyle(['width: 100px', 'height: 100px']) // {width: '100px', height: '100px'}// {width: '60px', height: '60px', color: 'red', top: '10px'}normalizeStyle([
'width: 100px; height: 100px; color: red',
'width: 60px; height: 60px; top: 10px',
])


mergeProps:

  1. classnormalizeClass
  2. stylenormalizeStyle


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)

640 (9).png


isVNode

import { isVNode } from"vue";
isVNode(<div>哈哈哈</div>) //trueisVNode('哈哈哈') // false

cloneVNodemergeProps

import { cloneVNode } from"vue";
constvnode1=<divclass="aaa"style="width: 100px">哈哈哈</div>constvnode2=cloneVNode(vnode1, {
class: 'bbb',
style: 'height: 100px'})
vnode2; // <div class="aaa bbb" style="width: 100px; height: 100px;">哈哈哈</div>

useCssVarscss

<template><divclass="text">哈哈哈</div></template><scriptsetup>import { useCssVars, reactive } from'vue'constcssVariable=reactive({
color: 'red',
fontSize: '32px',
bg: '#3db6ff',
radius: '100px'    })
useCssVars(vm=>cssVariable)
</script><style>  .text {
color: var(--color);
font-size: var(--fontSize);
width: var(--radius);
height: var(--radius);
border-radius: var(--radius);
background-color: var(--bg);
  }
</style>

640 (10).png

0 (1).png

相关文章
|
2月前
|
JavaScript 前端开发 IDE
[译] 用 Typescript + Composition API 重构 Vue 3 组件
[译] 用 Typescript + Composition API 重构 Vue 3 组件
[译] 用 Typescript + Composition API 重构 Vue 3 组件
|
2月前
|
JavaScript 前端开发 API
[译] 用 Vue 3 Composition API 实现 React Context/Provider 模式
[译] 用 Vue 3 Composition API 实现 React Context/Provider 模式
|
7天前
|
JavaScript 前端开发 API
花了一天的时间,地板式扫盲了vue3中所有API盲点
这篇文章全面介绍了Vue3中的API,包括组合式API、选项式API等内容,旨在帮助开发者深入了解并掌握Vue3的各项功能。
花了一天的时间,地板式扫盲了vue3中所有API盲点
|
8天前
|
存储 JavaScript 前端开发
敲黑板!vue3重点!一文了解Composition API新特性:ref、toRef、toRefs
该文章深入探讨了Vue3中Composition API的关键特性,包括`ref`、`toRef`、`toRefs`的使用方法与场景,以及它们如何帮助开发者更好地管理组件状态和促进逻辑复用。
敲黑板!vue3重点!一文了解Composition API新特性:ref、toRef、toRefs
|
2月前
|
前端开发 JavaScript API
Vue 3 新特性:在 Composition API 中使用 CSS Modules
Vue 3 新特性:在 Composition API 中使用 CSS Modules
|
2月前
|
缓存 JavaScript API
【颠覆想象!】Vue 3全新Reactivity API:解锁响应式编程的终极奥秘,让你的Web应用瞬间变身超能战士!
【8月更文挑战第12天】Vue 3带来了革新性的响应式系统,基于Proxy技术,提升了性能并提供了强大的API。本文通过示例介绍核心API `reactive` 和 `ref` 的使用,展示如何创建、更新响应式对象与引用,探讨深度响应式、响应式数组的管理,以及如何运用计算属性和侦听器优化应用。此外,还介绍了如何构建自定义响应式逻辑,让开发者能更高效地开发高性能Web应用。
39 1
|
2月前
|
API
浅谈 Vue3 的模块拆分与 API 重写
浅谈 Vue3 的模块拆分与 API 重写
|
2月前
|
JavaScript 前端开发 测试技术
Vue 3 组合式 API 中的 nextTick 深入解析
Vue 3 组合式 API 中的 nextTick 深入解析
|
2月前
|
JavaScript API UED
花了一天的时间,地板式扫盲了 Vue 3 所有 API 盲点
花了一天的时间,地板式扫盲了 Vue 3 所有 API 盲点
|
2月前
|
JavaScript 安全 API
Vue 3 Composition API 与 Options API:全面比较两者的区别和优缺点
Vue 3 Composition API 与 Options API:全面比较两者的区别和优缺点