import { Component, Vue } from "vue-property-decorator" 对比 import Vue from "vue"
import { Component, Vue } from "vue-property-decorator" vs. import Vue from "vue"
从 vue-property-decorator
和 vue
导入 Vue
有什么区别和用例?我的理解是,在使用 @Component
装饰器定义自定义组件时,我总是需要从 vue-property-decorator
导入 Vue
,但是是否有任何 unexpected/different things/scenarios 与Vue
这样做时我应该注意哪些核心?
假设您有一个名为 'some-module' 的非常简单的模块,其中包含:
var foo = 'bar';
export default foo;
export function helloWorld () { ... };
当你这样做时:
import something from 'some-module';
您只导入了 'some-module' 的默认导出。在本例中,它是字符串 foo。默认导出可以是任何东西,对象,函数等
当你这样做时:
import {helloWorld} from 'some-module';
您专门导入了一个名为 'helloWorld' 的 'some-module' 成员,而不是默认导出。在本例中,它是函数 'helloWorld'.
如果你这样做了:
import {something} from 'some-module';
'something' 将是 'undefined',因为没有使用该名称的导出。
你可以阅读更多here
我会说根据 vue-property-decorator
的 sources 没有区别。
vue-property-decorator
仅执行以下操作:
import Vue, { PropOptions, WatchOptions } from 'vue'
// ...
export { Component, Vue, mixins as Mixins }
可能这样做是为了减少代码中的导入次数:
import {Vue, Smth1, Smth2}` from 'vue-property-decorator';
对
import Vue from 'vue';
import {Smth1, Smth2} from 'vue-property-decorator';
从 vue-property-decorator
和 vue
导入 Vue
有什么区别和用例?我的理解是,在使用 @Component
装饰器定义自定义组件时,我总是需要从 vue-property-decorator
导入 Vue
,但是是否有任何 unexpected/different things/scenarios 与Vue
这样做时我应该注意哪些核心?
假设您有一个名为 'some-module' 的非常简单的模块,其中包含:
var foo = 'bar';
export default foo;
export function helloWorld () { ... };
当你这样做时:
import something from 'some-module';
您只导入了 'some-module' 的默认导出。在本例中,它是字符串 foo。默认导出可以是任何东西,对象,函数等
当你这样做时:
import {helloWorld} from 'some-module';
您专门导入了一个名为 'helloWorld' 的 'some-module' 成员,而不是默认导出。在本例中,它是函数 'helloWorld'.
如果你这样做了:
import {something} from 'some-module';
'something' 将是 'undefined',因为没有使用该名称的导出。
你可以阅读更多here
我会说根据 vue-property-decorator
的 sources 没有区别。
vue-property-decorator
仅执行以下操作:
import Vue, { PropOptions, WatchOptions } from 'vue'
// ...
export { Component, Vue, mixins as Mixins }
可能这样做是为了减少代码中的导入次数:
import {Vue, Smth1, Smth2}` from 'vue-property-decorator';
对
import Vue from 'vue';
import {Smth1, Smth2} from 'vue-property-decorator';