使用 VueJS 处理后端配置对象

Posted

技术标签:

【中文标题】使用 VueJS 处理后端配置对象【英文标题】:Working with backend configuration objects with VueJS 【发布时间】:2020-07-09 08:00:11 【问题描述】:

来自后端和前端的纯 php 世界,我现在正在使用一个使用 PHP API 的 VueJS 应用程序。

假设我想用表单呈现一个页面。在此表单中,我有一个选择字段“性别”,其中包含“男性”和“女性”选项。

在 PHP 中,我会有一个类似这样的配置文件:

$config['GENDER'] = [
    "M" => [
       "label" => "Male",
    ],
    "F" => [
       "label" => "Female",
    ],
];

我将使用它在前端创建选择选项,但也会在我的后端用于某些字段验证。

在 PHP 中这很好,因为后端和前端只需要这个文件。

使用 VueJS,你如何解决这个问题? 您是否对后端进行 AJAX 调用以在应用加载时检索这些数据?您是否在前端和后端复制共享配置?

【问题讨论】:

【参考方案1】:

你的任何一个建议都会奏效。

您可以像这样在 php/html 脚本中简单地提供数据:

(引号可能需要转义):

<my-vue-component :genders="<?php echo json_encode(...); ?>"></my-vue-component>
<script>
    // MyVueComponent.vue
    export default 
        props: 
            genders: Array
        
    
</script>

或者像这样在你的 Vue 组件中请求 mounted() 钩子中的数据:

<script>
    export default 
        mounted() 
            this.$http.get('/api/genders').then((response) 
                this.genders = response.data;
            );
        ,
        data() 
            return 
                genders: []
            
        
    ...
    
</script>

最后一个更难实现,因为您需要创建一个 JSON 端点(一个 API)。然而,这样做的好处是您可以更轻松地重新加载这些数据。

因此,如果您的数据预计会快速变化(动态数据),那么这就是要走的路。如果是静态数据,那么你应该通过组件属性来提供它。数据只会在页面重新加载时更新。

【讨论】:

以上是关于使用 VueJS 处理后端配置对象的主要内容,如果未能解决你的问题,请参考以下文章

我如何使用 Django + Vue.js 快速构建项目

如何在nodejs 中前端js调用后台的对象

使用 laravel 后端 api 在 vuejs 中搜索

如何使用 OIDC (vuejs + nodejs) 对前端和后端进行身份验证?

基于 Laravel API 后端和 Vuejs 前端构建

使用 Vuejs 和 Axios 合并对象