【问题标题】:Distributable/Distributed Web App with VueJS使用 VueJS 的可分发/分布式 Web 应用程序
【发布时间】:2020-02-26 14:26:49
【问题描述】:

我需要使用 VueJS 构建一个可分发的应用程序。我将描述场景,以便更好地理解。

想象一下:

  • 四家公司拥有相同的产品数据库

  • 他们每个人都有自己的政治、价格、自定义颜色、参数,所有这些也都存储在该数据库中

  • 这 4 家公司希望在其相关网站中集成一个页面,该页面显示他们自己的目录(包含他们的自定义价格和政治等),以及当您单击某些产品时,相关信息关于那个产品

问题是:如何使用 VueJS 制作这样的应用程序?编写一次,然后分发到这 4 个不同的公司网站?

我已经开始回答我的问题了:

  • 我创建了一个可以通过 API Keys 访问的 API

  • 为每家公司分配其自己的 API 密钥,以便使用该 API 密钥的请求与给定公司相关联

  • 我使用 VueCLI 创建了一个应用程序(它使用 vue-router 用于页面/视图,使用 axios 用于API 调用),编写了我所有的逻辑、组件和样式以及其他任何内容……出于开发目的,我尝试使用 4 个 API 密钥之一(将其硬编码到 axios.defaults.headers 中)来查看它是否一切正常……确实如此!

现在,问题来了:我需要以这样的方式构建/导出应用程序

在 www.company1.com/catalogue 调用 catalogue.js 并将 company1 API 密钥传递给它

在 www.company2.com/catalogue 调用 catalogue.js 并将 company2 API 密钥传递给它

在 www.company3.com/catalogue 调用 catalogue.js 并将 company3 API 密钥传递给它

...我将省略 company4,因为我确定你已经得到了我。

显然我可以用硬编码的 4 个不同的 API 导出 4 个不同的版本……但对我来说这似乎是一个非常愚蠢的想法!此外,它暴露了我的客户很多原因,好吧,每个人都可以链接到一些公司的 catalogue.js,并且无需配置或其他任何东西,就可以在它自己的网站上可视化我的客户产品..(这显然是一个问题)。

我想要:

只有一个 catalogue.js 文件,其中包含一些公开参数,例如:识别公司所需的 API 密钥。

这样,每个人仍然可以使用该 catalogue.js 文件,但使用错误的凭据,它不会产生任何东西(即会收到无法识别 API 密钥的 API 错误)。

我到底应该怎么做呢? 我从 2 周开始就在墙上撞我的头。 我尝试将应用导出为 Library,得到如下错误:Unknown custom element: <router-link> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

我尝试将应用导出为 Web 组件...遇到了同样的错误以及其他错误。

请帮助我了解哪里出了问题,以及我应该如何解决问题。

【问题讨论】:

    标签: javascript vue.js


    【解决方案1】:

    查看 Vue 环境变量https://cli.vuejs.org/guide/mode-and-env.html

    或者你可以制作独立的settings.json文件并通过axios加载

    【讨论】:

    • 好的..但这对我有什么帮助?我也可以将所有设置存储在数据库中并通过 axios 加载它们。但问题是:axios 使用 API,它需要一个 KEY。所以..我们回到第一点。明确地说,我需要谷歌地图之类的东西。地球上的每个人都加载相同的单个 maps.js。然后,当你实例化它时,你用你的 API 密钥和所有的定制和任何东西来配置它..
    • 您需要指定您的问题,使其不那么常见并插入代码示例,让我们尝试理解您的问题并提供合适的解决方案如果您需要一些可定制的可重用模块,您可以自己制作Vue.js 组件
    • 我想,我的问题是结构性的。我的应用程序运行良好..我在编写组件、路由等方面没有问题。我的问题更具概念性。如果您阅读了我的问题并遇到这种情况,您会怎么做? VueJS 有哪些可能性?甚至 VueJS 是正确的工具吗?即使我提供了一些代码..我也看不出这有什么用。我没有语法错误..我在问如何构建应用程序,以便回答我所写的要求。
    • 基本上,我需要一些方法来构建没有实例化代码的应用程序......这样我就可以在给定的容器中用给定的参数实例化应用程序。类似的东西
    • 在您的环境中实际上什么是“容器”?您将如何在该容器中将设置或参数传递给您的应用程序?
    猜你喜欢
    • 2012-04-07
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    相关资源
    最近更新 更多