vite2 加载 json 的一种方法

时间:2021-6-17 作者:qvyue

vite2 提供了很多种加载 json 的方式,只是大多都是常量的参数,但是有时候我需要动态改变地址,这个怎么办呢?最后发现了 import 的另一种方法。

一般我们会用这种方式来加载 json

import json from '/json/form-test.json'

如果地址是固定的,那么非常方便,只是地址如果是变化的怎么办呢?

/**
 * 通过模块ID和名称加载json文件
 */
export default function loadjson (moduleId, name, meta) {
  return new Promise((resolve, reject) => {
    // 加载
    import(`../../../../public/json-crud/${moduleId}/${name}.json`).then((data) => {
      // console.log('异步加载', data.default)
      Object.assign(meta, data.default)
      meta.reload = !meta.reload // 添加重新绑定的开关
      resolve(meta)
    })
  })
}

这样就可以拼接参数了。

为啥一定要拼接呢?这个就要说到我前面做的各种控件了。

控件的属性放在了 json 文件里面,内容非常多,所以需要按照模块来分成多个文件,那么加载的时候就需要动态设置路径,这样才能够针对组件加载对应的 json 文件。

所以需要传入模块ID和文件名称,这样就不需要那么多的代码了。

另外 vite2 还提供了 import.meta.glob 方法,这个还在研究中,应该也很方便的。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。