vue3在构建时使用魔法糖语法时defineProps和defineEmits的注意事项小结

 更新时间:2024年04月15日 09:29:09   作者:小透明落在星田  
在 Vue 3.2+ 版本中,可以使用 <script setup> 替代传统的 script标签来编写组件,它提供了更简洁的语法来编写 Composition API 代码,这篇文章主要介绍了vue3在构建时使用魔法糖语法时defineProps和defineEmits的注意事项小结,需要的朋友可以参考下

1.vue2和vue3区别

1.1 vue3中vue是一个对象,可以使用按需导入

import {createApp} from 'vue ’

1.2 导入区别

vue2中使用的vue-router3.0导入的是构造函数 new VueRouter()
vue3中使用的vue-router4.0导入的是对象 createRouter()

1.3 语法

vue2语法在vue3中都可以使用,除了过滤器并不能使用

2. vue3脚手架

脚手架中的路由有三种模式:历史模式history、哈希模式hash、抽象模式abstract

2.1 脚手架配置

vue create projectname------Manually select features--------Babel(js编译器)、Router、Vuex、CSS Pre-processors(css预处理器)

接下来介绍vue3在构建时,使用魔法糖语法时defineProps和defineEmits的注意事项、

在 Vue 3.2+ 版本中,可以使用 <script setup> 替代传统的 script标签来编写组件,它提供了更简洁的语法来编写 Composition API 代码。

在 <script setup> 中,使用 defineProps 和 defineEmits时需要注意:

  • 如果显式地导入defineProps时,在编译时会提示以下wanning
<script steup>
import { defineProps } from 'vue';
...
</script>

开发环境编译时会提示

[@vue/compiler-sfc] `defineProps` is a compiler macro and no longer needs to be imported.

原因是在 <script setup>中,defineProps 和 defineEmits 现在是编译器宏(compiler macros),这意味着你不再需要显式地从 'vue' 包中导入它们。这些宏在 <script setup> 的上下文中是自动可用的。

  • 如果不显式导出有可能提示以下错误
 ERROR  Failed to compile with 1 error
[eslint] 
  40:1  error  'defineProps' is not defined  no-undef

要解决以上问题,既不重复导入又不在编译时提示warning,可以在package.json里添加一行配置:
package.json

  ...
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true,
      "vue/setup-compiler-macros": true #添加这行配置
    },
...

到此这篇关于vue3在构建时使用魔法糖语法时defineProps和defineEmits的注意事项小结的文章就介绍到这了,更多相关vue3 defineProps和defineEmits内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue.js3.2的vnode部分优化升级使用示例详解

    Vue.js3.2的vnode部分优化升级使用示例详解

    这篇文章主要为大家介绍了Vue.js3.2的vnode部分优化升级使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Vue开发实现滑动验证组件

    Vue开发实现滑动验证组件

    这篇文章主要为大家详细介绍了如何利用Vue开发实现简单的滑动验证组件,并且适配移动和PC,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-07-07
  • 浅析Vue 中的 render 函数

    浅析Vue 中的 render 函数

    在vue中我们使用模板HTML语法组建页面的,使用render函数我们可以用js语言来构建DOM,今天小编就通过本文给大家简单介绍下Vue 中 render 函数,需要的朋友可以参考下
    2020-02-02
  • vue.config.js文件devServer字段的常用选项详解

    vue.config.js文件devServer字段的常用选项详解

    在 Vue CLI 生成的 vue.config.js 文件中,devServer 字段用于配置开发服务器的选项,本文给大家介绍vue.config.js文件devServer字段的常用选项,感兴趣的朋友一起看看吧
    2023-11-11
  • 浅谈v-for 和 v-if 并用时筛选条件方法

    浅谈v-for 和 v-if 并用时筛选条件方法

    今天小编就为大家分享一篇浅谈v-for 和 v-if 并用时筛选条件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue项目之前端CryptoJS加密、解密代码示例

    vue项目之前端CryptoJS加密、解密代码示例

    在Vue项目中集成CryptoJS进行数据加密,首先需要通过npm安装CryptoJS安装包,然后在项目文件中引入CryptoJS,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-11-11
  • vue.js使用v-pre与v-html输出HTML操作示例

    vue.js使用v-pre与v-html输出HTML操作示例

    这篇文章主要介绍了vue.js使用v-pre与v-html输出HTML操作,结合实例形式分析了vue.js基于v-pre与v-html属性输出HTML的具体操作技巧,需要的朋友可以参考下
    2018-07-07
  • vue.js指令和组件详细介绍及实例

    vue.js指令和组件详细介绍及实例

    这篇文章主要介绍了vue.js功能介绍 - 指令,组件详细介绍及实例,详细的介绍了指令和组件的用法,有兴趣的可以了解一下。
    2017-04-04
  • 解决vue项目刷新后,导航菜单高亮显示的位置不对问题

    解决vue项目刷新后,导航菜单高亮显示的位置不对问题

    今天小编就为大家分享一篇解决vue项目刷新后,导航菜单高亮显示的位置不对问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 关于vue3编写挂载DOM的插件问题

    关于vue3编写挂载DOM的插件问题

    这篇文章主要介绍了vue3编写挂载DOM的插件的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07

最新评论