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的规则,路由只是用到了导入。

相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万2 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
A黄俊辉A2 天前
uniapp webview中实现 app和内嵌的H5双向通信
vue.js·json
三十而立洋2 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁2 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
李少兄2 天前
JavaScript 隐式全局变量解析
javascript
honkun62 天前
vue 表格组件 vxe-table 配置 ajax 请求自动加载数据与表单查询
vue.js·vxe-table
kybs19912 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net