zoukankan      html  css  js  c++  java
  • export default{} 和 new Vue()都是什么意思

    在生成、导出、导入、使用 Vue 组件的时候,有些新手就会常常被位于不同文件的 new Vue() 和 export default{} 搞得晕头转向。它们含义到底是什么,又有什么异同呢?

    首先,Vue 是什么? 我的理解是 Vue 就是一个构造函数,生成的实例是一个巨大的对象,可以包含数据、模板、挂载元素、方法、生命周期钩子等选项。

    所以渲染的时候,可以使用构造 Vue 实例的方式来渲染相应的 html 页面:

    new Vue({
        el: '#app'
        ...
    })

    那么 export default {} 又是来干嘛的?

    这是在复用组件的时候用到的。假设我们写了一个单页面组件 A 文件,而在另一个文件 B 里面需要用到它,那么就要用 ES6 的 import/export 语法 ,在文件 A 中定义输出接口 export **,在文件 B 中引入 import **,然后再生成一个 Vue 实例 new Vue (**),把引入的组件用起来,这样就可以复用组件 A 去配合文件 B 生成 html 页面了。

    所以在复用组件的时候,export 和 new Vue 缺一不可。

    ======================================================================

    export 用来导出模块,Vue 的单文件组件通常需要导出一个对象,这个对象是 Vue 实例的选项对象,以便于在其它地方可以使用 import 引入。而 new Vue() 相当于一个构造函数,在入口文件 main.js 构造根组件的同时,如果根组件还包含其它子组件,那么 Vue 会通过引入的选项对象构造其对应的 Vue 实例,最终形成一棵组件树。

      export 和export default 的区别在于:export 可以导出多个命名模块,例如:

    //demo1.js
    export const str = 'hello world'
    
    export function f(a){
        return a+1
    }

      对应的引入方式:

    //demo2.js
    import { str, f } from 'demo1'

      export default 只能导出一个默认模块,这个模块可以匿名,例如:

    //demo1.js
    export default {
        a: 'hello',
        b: 'world'      
    }

      对应的引入方式:

    //demo2.js
    import obj from 'demo1'

      引入的时候可以给这个模块取任意名字,例如 "obj",且不需要用大括号括起来。

  • 相关阅读:
    Java Web编程的主要组件技术——JSP
    Java Web编程的主要组件技术——Servlet
    closest()一个在评论里很有用的函数
    ThinkPHP I方法
    PHPstorm 的快捷键
    ThinkPHP的缓存 F方法
    console.log的使用
    选择使用接口和抽象类的依据
    OOP三类继承的区别
    Thinkphp C方法
  • 原文地址:https://www.cnblogs.com/mark5/p/11736442.html
Copyright © 2011-2022 走看看