#Vue3篇:defineOptions&vueUse

定义组件name

从 3.3 开始你可以直接通过

defineOptions 来设置组件名或 inheritAttrs 属性。

defineProps() 和 defineEmits()

const props = defineProps<{
  foo: string
  bar?: number
}>()

const emit = defineEmits<{
  (e: 'change', id: number): void
  (e: 'update', value: string): void
}>()

// 3.3+:另一种更简洁的语法
const emit = defineEmits<{
  change: [id: number] // 具名元组语法
  update: [value: string]
}>()

defineProps 和 defineEmits 都是只能在


创建 Vnodes

import { h } from 'vue'

const vnode = h(
  'div', // type
  { id: 'foo', class: 'bar' }, // props
  [
    /* children */
  ]
)

https://cn.vuejs.org/guide/extras/render-function.html


rxjs库它是基于订阅-发布模式、观察者模式与迭代器实现的。

https://rxjs.dev/api/operators/every


vueuse一个提升开发效率的Vue3工具库

https://vueuse.org/core/useClipboard/


https://vueuse.nodejs.cn/core/useFocus/#google_vignette


‘defineOptions’ is not defined.eslintno-undef

https://www.cnblogs.com/fuct/p/17602675.html


defineComponent和defineOptions区别

主要用途
TypeScript 支持:defineComponent 主要是为了增强 TypeScript 的支持而设计的。它为组件提供了更好的类型推断和类型安全,确保了更灵活且可靠的组件定义方式1。
Composition API:当使用 Composition API 定义组件时,推荐使用 defineComponent 来封装组件逻辑。这不仅有助于简化组件定义,还能减少样板代码的数量。
使用方法
当你使用 defineComponent 创建一个组件时,你实际上是在创建一个返回 Vue 组件选项的对象的函数。这个对象可以包含所有的 Vue 组件选项,比如 name、props、setup 等等:


import { defineComponent } from 'vue';
export default defineComponent({
  name: 'MyComponent',
  props: {
    message: String,
  },
  setup(props) {
    // setup logic here...
    return {};
  }
});


通过这种方式,你可以获得更好的 IDE 提示和支持,特别是在使用 TypeScript 的时候。此外,defineComponent 还能帮助你在不丢失类型信息的情况下处理复杂的逻辑2。


DefineOptions
主要用途
SFC


<script setup>
// 不需要 import defineOptions from 'vue';

defineOptions({
  name: 'MyComponent',
  inheritAttrs: false,
  // 其他自定义选项...
});
</script>

这种方法非常适合在 <script setup> 中使用,因为它可以让代码更加简洁和易读,特别适合小型和中型组件。需要注意的是,尽管 defineOptions 可以用来定义 props 和 emits,官方文档建议优先使用专门为此目的设计的 defineProps 和 defineEmits 宏,因为它们提供了更好的类型推导和支持13

defineProps() 和 defineEmits()

const props = defineProps<{
  foo: string
  bar?: number
}>()

const emit = defineEmits<{
  (e: 'change', id: number): void
  (e: 'update', value: string): void
}>()

// 3.3+:另一种更简洁的语法
const emit = defineEmits<{
  change: [id: number] // 具名元组语法
  update: [value: string]
}>()

defineProps 和 defineEmits 都是只能在


创建 Vnodes

import { h } from 'vue'

const vnode = h(
  'div', // type
  { id: 'foo', class: 'bar' }, // props
  [
    /* children */
  ]
)

https://cn.vuejs.org/guide/extras/render-function.html


rxjs库它是基于订阅-发布模式、观察者模式与迭代器实现的。

https://rxjs.dev/api/operators/every


vueuse一个提升开发效率的Vue3工具库

https://vueuse.org/core/useClipboard/


https://vueuse.nodejs.cn/core/useFocus/#google_vignette


‘defineOptions’ is not defined.eslintno-undef

https://www.cnblogs.com/fuct/p/17602675.html


defineComponent和defineOptions区别

主要用途
TypeScript 支持:defineComponent 主要是为了增强 TypeScript 的支持而设计的。它为组件提供了更好的类型推断和类型安全,确保了更灵活且可靠的组件定义方式1。
Composition API:当使用 Composition API 定义组件时,推荐使用 defineComponent 来封装组件逻辑。这不仅有助于简化组件定义,还能减少样板代码的数量。
使用方法
当你使用 defineComponent 创建一个组件时,你实际上是在创建一个返回 Vue 组件选项的对象的函数。这个对象可以包含所有的 Vue 组件选项,比如 name、props、setup 等等:


import { defineComponent } from 'vue';
export default defineComponent({
  name: 'MyComponent',
  props: {
    message: String,
  },
  setup(props) {
    // setup logic here...
    return {};
  }
});


通过这种方式,你可以获得更好的 IDE 提示和支持,特别是在使用 TypeScript 的时候。此外,defineComponent 还能帮助你在不丢失类型信息的情况下处理复杂的逻辑2。


DefineOptions
主要用途
SFC


<script setup>
// 不需要 import defineOptions from 'vue';

defineOptions({
  name: 'MyComponent',
  inheritAttrs: false,
  // 其他自定义选项...
});
</script>

这种方法非常适合在 <script setup> 中使用,因为它可以让代码更加简洁和易读,特别适合小型和中型组件。需要注意的是,尽管 defineOptions 可以用来定义 props 和 emits,官方文档建议优先使用专门为此目的设计的 defineProps 和 defineEmits 宏,因为它们提供了更好的类型推导和支持13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值