Vue组件版本控制,是否可能遵循这些原则?

时间:2019-03-06 11:04:40

标签: javascript vue.js

我目前根据需要动态导入我的组件,但是,如果需要对组件进行大量更改,则我想为其创建一个新版本,但是从某种意义上说,它仍然是同一组件。

我的app.js中包含以下内容:

Vue.component( 'favourites-panel', () => import('./components/Favourites/Panel.vue' );

我可以将以上内容更改为类似的内容,并从prop获取版本吗?显然这是理论代码!

Vue.component( 'favourites-panel', (e) => import('./components/Favourites/Panel' + e.version + '.vue' );

这是我调用组件的方式:

<favourites-panel version="1"></favourites-panel>

2 个答案:

答案 0 :(得分:1)

否,使用props对象无法“版本化”组件。
首先,您需要了解自己在做什么:Vue.component是一项用于全局加载所需所有组件的功能。您可以传递绝对路径,也可以根据需要传递承诺。
在这种情况下,您要异步加载组件,然后导入import语句,返回一个Promise。如果检查e属性,您将看到它是resolve回调。
写作:

Vue.component( 'favourites-panel', () => import('./components/Favourites/Panel.vue' );

或:

Vue.component('favourites-panel', function (resolve) {
  require(['./components/Favourites/Panel.vue'], resolve)
})

是同一件事,都返回一个Promise对象。
为了解决您的问题,您可以添加environment variable,然后加载 根据该特定环境变量的值组成。

答案 1 :(得分:0)

不,这对于源代码控制和依赖项管理都是完全错误的方法。您应该改为创建组件的NPM模块,然后如果由于某种原因需要再次使用旧模块,则可以npm install旧版本。