UNPKG

ui-template-muc

Version:

A fantastic mobile ui lib implement by Vue

28 lines (27 loc) 1.14 kB
// 解析的数据结构参考https://cn.vuejs.org/v2/guide/render-function.html#%E6%B7%B1%E5%85%A5%E6%95%B0%E6%8D%AE%E5%AF%B9%E8%B1%A1 import objectAssign from '@utils/assign' import {lowercamelcase} from '@utils/camelcase' const eventReg = new RegExp(/^on(.+)/) const reservedProps = ['class', 'style', 'attrs', 'props', 'domProps', 'on', 'nativeOn', 'directives', 'scopedSlots', 'slot', 'key', 'ref', 'refInFor'] export default function parseData (config) { let data = {} //通过createApi创建的组件默认是隐藏的 let props = {} let on = {} for (const key in config) { if (config.hasOwnProperty(key)) { if (reservedProps.indexOf(key) !== -1) { data[key] = config[key] } else if (eventReg.test(key)) { //事件单独处理 let eventName = eventReg.exec(key)[1] eventName = lowercamelcase(eventName) on[eventName] = config[key] } else { //其他字段默认都当做props属性 props[key] = config[key] } } } data['on'] = objectAssign(on, data['on']) data['props'] = objectAssign(props, data['props']) return data }