vue export default

文章目录

      • [export default](#export default)
        • [export default示例](#export default示例)
        • [setup和export default的区别](#setup和export default的区别)
        • [export default导出或setup设置后路由才可使使用对吧?](#export default导出或setup设置后路由才可使使用对吧?)

export default

export default 是默认导出,一个vue文件只能有一个export default。

export default示例
js 复制代码
<script>
  export default {
    name: 'TutorialChapterView',
    data() {
      return {
        tutorial: null,
        chapters: [],
        activeChapterId: null,
        activeChapter: null
      }
    },
    async mounted() {
      const tutorialId = this.$route.params.tutorialId
    },
    methods: {
      async fetchTutorial(tutorialId) {
        try {
          const response = await fetch(`/mysite/api/tutorial/${tutorialId}`, {
            method: 'GET',
            headers: {
              'Content-Type': 'application/json',
            }
          })

          const data = await response.json()

          if (data.success) {
            this.tutorial = data.data
          }
        } catch (error) {
          console.error('Failed to fetch tutorial:', error)
        }
      }
    },
    watch: {
      '$route'(to, from) {
        if (to.params.tutorialId !== from.params.tutorialId) {
          this.tutorial = null
          this.chapters = []
          this.activeChapterId = null
          this.activeChapter = null

          const tutorialId = to.params.tutorialId
          if (tutorialId) {
            this.fetchTutorial(tutorialId)
            this.fetchChapters(tutorialId)
          }
        }
      }
    }
  }
  </script>
setup和export default的区别

setup更优雅,更推荐。

setup有以下优点:

1、无需exportdefault:中顶层声明的变量、函数会自动暴露给模板,无需手动return。

2、响应式数据改造:原来的data属性全部改为ref(),在JS逻辑中读写它们必须加上.value(在模板中则不需要)。

3、生命周期钩子:mounted被替换为onMounted,且需要从vue中显式导入。

4、路由监听:Vue3推荐使用watch函数监听特定的响应式值(如()=>route.params.tutorialId),这比Vue2中监听整个$route对象性能更好、意图更明确。

export default导出或setup设置后路由才可使使用对吧?

这样理解比较片面。

默认导出并不是路由的规则,而是es6的规则,路由只是用到了导入。

相关推荐
2601_9516152010 分钟前
网站模板 网站网页模板下载
前端·网络·html
酷炫码神43 分钟前
Day 1|HTML5:一个商城首页的骨架,从 DOCTYPE 到语义化
前端·html·html5
AI源码1 小时前
鲜花商城(HTML 版)
前端·html
hiahiahia1231 小时前
Message 和对话
服务器·前端·数据库
雪芽蓝域zzs2 小时前
第 7 节:多边形点击弹窗 + 清空绘制按钮
vue.js
溪语流沙2 小时前
【Web全栈进阶】Composition API与组件通信:props深入、emit、插槽
前端·css·vue.js
ZoeLandia2 小时前
TypeScript 03:泛型与工具类型
前端·typescript
code_Bo2 小时前
从策划到上线:我和 AI 一起做了个微信记账小程序
前端·ai编程·cursor
Shirley~~2 小时前
Three.js加载Gltf模型并播放动画
前端·3d
Data analyse4562 小时前
Session超时与浏览器休眠的计时校验
大数据·前端·数据库·数据分析