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

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

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

什么是 Vue Macros

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

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

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

如何使用?

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

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

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

如果使用 Vite ,则需要在 vite.config.js 文件中:iUs28资讯网——每日最新资讯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需要进行额外配置:iUs28资讯网——每日最新资讯28at.com

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

核心 API

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

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

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

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

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

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

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

defineProps

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

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

definePropsRefs

从 defineProps 中将返回 refs 而不是 reactive 对象,可以在不丢失响应式的情况下解构 props。iUs28资讯网——每日最新资讯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> 中定义渲染函数。iUs28资讯网——每日最新资讯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。默认使用 $ 符号iUs28资讯网——每日最新资讯28at.com

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

总结

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


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

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

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

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

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

标签:
  • 热门焦点
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • 容量越大越不坏?24万块硬盘故障率报告公布 这些产品零故障

    8月5日消息,云存储服务商Backblaze发布了最新的硬盘故障率报告,年故障率有所上升。Backblaze发布的硬盘季度统计数据,其中包括故障率等重要方面。这些结
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • 使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 慕岩炮轰抖音,百合网今何在?

    来源:价值研究所 作者:Hernanderz&ldquo;难道就因为自己的一个产品牛逼了,从客服到总裁,都不愿意正视自己产品和运营上的问题,选择逃避了吗?&rdquo;这一番话,出自百合网联合创
  • 华为Mate 60保护壳曝光:硕大后置相机模组 凸起程度有惊喜

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • 2299元起!iQOO Pad明晚首销:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其最大的卖点
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
Top