JsonUtil将vue文件转换成字符串 - 戴向天

tech2025-02-08  15

大家好!我叫戴向天

QQ群:602504799

import jsPlugIn from './js-plugIn' /** * Author:戴向天 * createdTime: 2020-09-04 * * 创建该文件的目的是为了将vue文件进行相对应的转换成字符串 * 然后通过解析字符串来进行生成vue文件 * * 因为有些机制的传输数据格式必须为字符串形式 * 所以可以通过jsonUtils来进行操作编译和反编译 * */ const jsonUtils = window.JSON jsonUtils.JsonValToString = function (obj = {}) { const resObj = {} for (let key in obj) { if (jsPlugIn.getType(obj[key], 'function')) { resObj[key] = obj[key].toString(); } else if (jsPlugIn.getType(obj[key], 'json')) { resObj[key] = jsonUtils.JsonValToString(obj[key]) } else { resObj[key] = obj[key] } } return resObj } jsonUtils.JsonValToJson = function (obj = {}) { const resObj = {} for (let key in obj) { if (jsPlugIn.getType(obj[key], 'string') && !obj[key].indexOf('function')) { const arr = obj[key].split(' ') arr.shift() const funName = arr.join('').split('(')[0] if (['String', 'Number', 'Array', 'Boolean', 'Object', 'Function'].indexOf(funName) >= 0) { resObj[key] = eval("(" + funName + ")") } else { resObj[key] = eval("(" + obj[key] + ")") } } else if (jsPlugIn.getType(obj[key], 'json')) { resObj[key] = jsonUtils.JsonValToJson(obj[key]) } else { resObj[key] = obj[key] } } return resObj } jsonUtils.JsonToString = (obj = {}) => jsonUtils.stringify(jsonUtils.JsonValToString(obj)) jsonUtils.StringToJson = (str = '') => jsonUtils.JsonValToJson(jsonUtils.parse(str)) export default jsonUtils

测试:

cmpName:组件名称 component:导入的vue文件 Vue.component(cmpName, JsonUtils.StringToJson(JsonUtils.JsonToString(component)));
最新回复(0)