vue编译器util工具如何使用的,用哪些简单实例
Admin 2022-08-09 群英技术资讯 1219 次浏览
这篇文章给大家分享的是vue编译器util工具如何使用的,用哪些简单实例。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。function makeMap(str, expectsLowerCase) {
var map = Object.create(null);
var list = str.split(',');
for (var i = 0; i < list.length; i++) {
map[list[i]] = true;
}
return expectsLowerCase ?
function(val) {
return map[val.toLowerCase()];
} :
function(val) {
return map[val];
}
}
var isReservedTag = function(tag) {
return isHTMLTag(tag) || isSVG(tag)
};
判断一个标签是否是保留标签,我们可以知道,如果一个标签是html标签,或者是svg标签,那么这个标签即是保留标签。
function pluckModuleFunction(modules,key) {
return modules ?
modules.map(function(m) {
return m[key];
}).filter(function(_) {
return _;
}) : []
}
检测在modules 数组中的成员对象是否有key属性,如果有"采摘"出来,组成一个新的数组。
如下实例代码:
transforms = pluckModuleFunction(options.modules, 'transformNode')
传递给 pluckModuleFunction 函数的第二个参数的字符串为 'transformNode',同时我们观察 options.modules 数组:
var modules$1 = [
klass$1,
style$1,
model$1
];
var klass$1 = {
staticKeys: ['staticClass'],
transformNode: transformNode, //处理静态属性和非静态属性
genData: genData
};
var model$1 = {
preTransformNode: preTransformNode
};
var style$1 = {
staticKeys: ['staticStyle'],
transformNode: transformNode$1, //处理静态样式和非静态样式
genData: genData$1
};
此时按照 pluckModuleFunction 函数的逻辑:
modules ?
modules.map(function(m) {
return m[key];
}).filter(function(_) {
return _;
}) : []
我们拆分开看:
modules ? modules.map(function(m) {
return m[key];
})
如果modules存在则,调用 modules.map 创建一个新的数组。
[ transformNode, transformNode$1, undefined ]
还没完紧接着又在新生成的数组之上调用了 filter 函数相当于:
[transformNode, transformNode$1, undefined].filter(function(_){ return _ });
把值为 undefined 的元素过滤掉,所以最终生成的数组如下:
[transformNode, transformNode$1]
function isReserved(str) {
var c = (str + '').charCodeAt(0);
return c === 0x24 || c === 0x5F
}
在Vue中不允许使用以$或_开头的字符串作为data数据的字段名, isReserved 函数用来检测一个字符串是否以$ 或者 _ 开头。
如:
new Vue({
data: {
$count: 1, // 不允许
_ret: 2 // 不允许
}
})
isReserved是如何判断一个字符串是否以 $ 或 _ 开头呢?
它的实现方式是通过字符串的 charCodeAt 方法获得该字符串第一个字符的 unicode,然后与 0x24 和 0x5F 作比较。其中 $ 对应的 unicode 码为 36,对应的十六进制值为 0x24;_ 对应的 unicode 码为 95,对应的十六进制值为 0x5F。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
JavaScript选择语句怎么样写?JavaScript选择语句是很经常会用来的,也是JavaScript学习中最基础的知识。JavaScript中选择语句有if语句、switch语句和三元运算语句这些,实现代码怎样写呢?下面我们详细的了解看看,需要的朋友可以参考。
这篇文章主要为大家详细介绍了使用javascript实现双端队列,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了Vue路由vue-router详细讲解指南,对vue-router感兴趣的同学,可以参考下
本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了JavaScript的书写规则、变量的声明格式、变量的命名规则、及注意事项,变量的数据类型,数据类型的分类,空(null) 与 未定义(undefined)的用法,下面一起来看一下,希望对大家有帮助。
这篇文章主要为大家详细介绍了纯js实现轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008