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

相关文章
|
JavaScript 前端开发 安全
|
缓存 JavaScript 前端开发
深入理解 Vue 3 的 Composition API 与新特性
本文详细探讨了 Vue 3 中的 Composition API,包括 setup 函数的使用、响应式数据管理(ref、reactive、toRefs 和 toRef)、侦听器(watch 和 watchEffect)以及计算属性(computed)。我们还介绍了自定义 Hooks 的创建与使用,分析了 Vue 2 与 Vue 3 在响应式系统上的重要区别,并概述了组件生命周期钩子、Fragments、Teleport 和 Suspense 等新特性。通过这些内容,读者将能更深入地理解 Vue 3 的设计理念及其在构建现代前端应用中的优势。
521 1
深入理解 Vue 3 的 Composition API 与新特性
|
JavaScript 前端开发 API
花了一天的时间,地板式扫盲了vue3中所有API盲点
这篇文章全面介绍了Vue3中的API,包括组合式API、选项式API等内容,旨在帮助开发者深入了解并掌握Vue3的各项功能。
花了一天的时间,地板式扫盲了vue3中所有API盲点
|
JavaScript 前端开发 API
Vue 3新特性详解:Composition API的威力
【10月更文挑战第25天】Vue 3 引入的 Composition API 是一组用于组织和复用组件逻辑的新 API。相比 Options API,它提供了更灵活的结构,便于逻辑复用和代码组织,特别适合复杂组件。本文将探讨 Composition API 的优势,并通过示例代码展示其基本用法,帮助开发者更好地理解和应用这一强大工具。
329 2
|
缓存 JavaScript API
Vue 3的全新Reactivity API:解锁响应式编程的力量
【10月更文挑战第9天】Vue 3的全新Reactivity API:解锁响应式编程的力量
190 3
|
缓存 JavaScript API
Vue 3的全新Reactivity API:解锁响应式编程的力量
Vue 3引入了基于Proxy的全新响应式系统,提升了性能并带来了更强大的API。本文通过示例详细介绍了`reactive`、`ref`、`computed`、`watch`等核心API的使用方法,帮助开发者深入理解Vue 3的响应式编程。无论你是初学者还是资深开发者,都能从中受益,构建更高效的应用程序。
203 1
|
API
《vue3第四章》Composition API 的优势,包含Options API 存在的问题、Composition API 的优势
《vue3第四章》Composition API 的优势,包含Options API 存在的问题、Composition API 的优势
136 0
|
JavaScript 前端开发 API
《vue3第六章》其他,包含:全局API的转移、其他改变
《vue3第六章》其他,包含:全局API的转移、其他改变
130 0
|
存储 前端开发 JavaScript
深入理解Vue3的组合式API及其实践应用
【10月更文挑战第5天】深入理解Vue3的组合式API及其实践应用
579 0