当前位置:首页 > 科技  > 软件

体验超现代的 Vue ?Vue Macros 使用探索

来源: 责编: 时间:2024-05-23 17:09:27 215观看
导读什么是 Vue MacrosVue Macros 是一个 vue 的周边库,可以在 Vue 2.7 以上的项目中进行使用。并引入了一套高级功能(宏)和语法糖。图片这些宏是库的一部分,主要是实现了 Vue 目前尚未正式采用的提案。如何使用?要开始在项目

什么是 Vue Macros

Vue Macros 是一个 vue 的周边库,可以在 Vue 2.7 以上的项目中进行使用。并引入了一套高级功能(宏)和语法糖。D4m28资讯网——每日最新资讯28at.com

图片图片D4m28资讯网——每日最新资讯28at.com

这些宏是库的一部分,主要是实现了 Vue 目前尚未正式采用的提案。D4m28资讯网——每日最新资讯28at.com

如何使用?

要开始在项目中使用 Vue Macros,首先需要安装该库:D4m28资讯网——每日最新资讯28at.com

使用 npm:npm install -D unplugin-vue-macros使用 yarn:yarn add -D unplugin-vue-macros使用 pnpm:pnpm add -D unplugin-vue-macros

安装后,需要打包器进行不同的配置。D4m28资讯网——每日最新资讯28at.com

如果使用 Vite ,则需要在 vite.config.js 文件中:D4m28资讯网——每日最新资讯28at.com

import { defineConfig } from "vite";import VueMacros from "unplugin-vue-macros/vite";import Vue from "@vitejs/plugin-vue";export default defineConfig({  plugins: [    VueMacros({      plugins: {        vue: Vue(),      },    }),  ],});

对于 TypeScript 项目,tsconfig.json需要进行额外配置:D4m28资讯网——每日最新资讯28at.com

{  "compilerOptions": {    "types": ["unplugin-vue-macros/macros-global"]  }}

核心 API

defineOptions(Vue 3.3 默认支持了该功能)

defineOptions允许直接在内部声明组件选项<script setup>,而不需要单独的<script>块,也就是说可以在一个宏函数中设置 name, props, emits, render。D4m28资讯网——每日最新资讯28at.com

对于喜欢组合 API 但仍想使用某些选项 API 功能的开发人员来说,这个宏非常有用。D4m28资讯网——每日最新资讯28at.com

<script setup lang='ts'>defineOptions({  name: "SearchComp",});</script>

defineSlots(Vue 3.3 默认支持了该功能)

使用 defineSlots 可以在 <script setup> 中声明 SFC 中插槽的类型D4m28资讯网——每日最新资讯28at.com

<script setup lang="ts">defineSlots<{  // 插槽名称  title: {    // 作用域插槽    foo: 'bar' | boolean  }}>()</script>

defineProps

使用 $defineProps 可以正确地解构 props 的类型D4m28资讯网——每日最新资讯28at.com

<script setup lang="ts">//       ⬇️ ReactiveVariable<string[]>const { foo } = $defineProps<{  foo: string[]}>()//     ⬇️ Ref<string[]>const fooRef = $$(foo)</script>

definePropsRefs

从 defineProps 中将返回 refs 而不是 reactive 对象,可以在不丢失响应式的情况下解构 props。D4m28资讯网——每日最新资讯28at.com

<script setup lang="ts">// ✅ 解构不丢失响应式const { foo, bar } = definePropsRefs<{  foo: string  bar: number}>()//          ⬇️ Ref<string>console.log(foo.value, bar.value)</script>

defineRender

使用 defineRender 可以直接在 <script setup> 中定义渲染函数。D4m28资讯网——每日最新资讯28at.com

<script setup lang="tsx">// 可以直接传递 JSXdefineRender(  <div>    <span>Hello</span>  </div>,)// 或使用渲染函数defineRender(() => {  return (    <div>      <h1>Hello World</h1>    </div>  )})</script>

shortVmodel

v-model 的语法糖。直接通过特定符号('::' | '$' | '*')代替 v-model。默认使用 $ 符号D4m28资讯网——每日最新资讯28at.com

<template>  <input $="msg" />  <!-- => <input v-model="msg" /> -->  <demo $msg="msg" />  <!-- => <input v-model:msg="msg" /> --></template>

总结

除此之外,Vue Macros 还提供了很多其他的宏或 语法糖 可供大家使用。但是需要注意的是,目前有些 实验性质 的功能需要注意谨慎使用。D4m28资讯网——每日最新资讯28at.com


D4m28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-90339-0.html体验超现代的 Vue ?Vue Macros 使用探索

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: yolov部署到iPhone或终端实践全过程

下一篇: 一文搞懂七种基本的GC垃圾回收算法

标签:
  • 热门焦点
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 一文看懂为苹果Vision Pro开发应用程序

    译者 | 布加迪审校 | 重楼苹果的Vision Pro是一款混合现实(MR)头戴设备。Vision Pro结合了虚拟现实(VR)和增强现实(AR)的沉浸感。其高分辨率显示屏、先进的传感器和强大的处理能力
  • Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 如何使用JavaScript创建一只图像放大镜?

    译者 | 布加迪审校 | 重楼如果您曾经浏览过购物网站,可能遇到过图像放大功能。它可以让您放大图像的特定区域,以便浏览。结合这个小小的重要功能可以大大改善您网站的用户体验
  • 三万字盘点 Spring 九大核心基础功能

    大家好,我是三友~~今天来跟大家聊一聊Spring的9大核心基础功能。话不多说,先上目录:图片友情提示,本文过长,建议收藏,嘿嘿嘿!一、资源管理资源管理是Spring的一个核心的基础功能,不
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein&ldquo;利用市场支配力量强迫服装厂商与之签订独家
  • 消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    来源:征探财经作者:陈香羽随着流量红利的退潮,电商的存量博弈越来越明显。曾经主攻中高端与品质的淘宝天猫、京东重拾&ldquo;低价&rdquo;口号。而过去与他们错位竞争的拼多多,靠
  • 微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
  • 与兆芯合作 联想推出全新旗舰版笔记本电脑开天N7系列

    联想与兆芯合作推出全新联想旗舰版笔记本电脑开天 N7系列。这个系列采用兆芯KX-6640MA处理器平台,KX-6640MA 处理器是采用了陆家嘴架构,16nm 工艺,4 核 4 线
Top