Vue.config.mustUseProp = mustUseProp
Vue.config.isReservedTag = isReservedTag
Vue.config.isReservedAttr = isReservedAttr
Vue.config.getTagNamespace = getTagNameSpace
Vue.config.isUnknownElement = isUnknownElement
mustUseProp
export const museUseProp = (tag,type,attr)=>{
return ((attr === 'value' && acceptValue(tag)) && type !== 'button' || (attr === 'selected' && tag === 'option' ) || (attr === 'checked' && tag === 'input') || (attr === 'muted' && tag === 'video'))
}
isReserverTag
export const isReservedTag = (tag) => {
return isHTMLTag(tag) || isSVG(tag)
}
isReservedAttr
export const isReservedAttr = makeMap('style,class')
getTagNameSpace
export function getTagNameSpace(tag){
if(isSvg(tag)){
return 'svg'
}
if(tag === 'math'){
return 'math'
}
}
isUnknownElement
const unKnownElementCache = Object.create(null)
export function isUnknownElement(tag){
if(!inBrowser){
return true
}
if(isReservedTag(tag)){
return false
}
tag = tag.toLowerCase()
if(unKnownElementCache[tag] !== null){
return unKnownElementCache[tag]
}
const el = document.createElement(tag)
if(tag.indexOf("-") > -1){
return (unKnownElementCache[tag] = (
el.constructor === window.HTMLUnknownElement || el.constructor === window.HTMLElement
))
}else{
return (unKnownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
}
}