MCPcopy Create free account
hub / github.com/ygs-code/vue / compile

Function compile

vue.js:15628–15711  ·  view source on GitHub ↗
(
                template,  //字符串模板
                options //options 参数
            )

Source from the content-addressed store, hash-verified

15626
15627
15628 function compile(
15629 template, //字符串模板
15630 options //options 参数
15631 ) {
15632 console.log(options)
15633
15634
15635 //template 模板 options 参数
15636 // 创建一个对象 拷贝baseOptions 拷贝到 原型 protype 中
15637 var finalOptions = Object.create(baseOptions); //为虚拟dom添加基本需要的属性
15638 console.log(finalOptions)
15639 console.log(finalOptions.__proto__)
15640 console.log(finalOptions.property)
15641
15642 var errors = [];
15643 var tips = [];
15644 //声明警告函数
15645 finalOptions.warn = function (msg, tip) {
15646 (tip ? tips : errors).push(msg);
15647 };
15648
15649 if (options) {
15650 console.log(options)
15651
15652 // merge custom modules
15653 //baseOptions中的modules参数为
15654 // modules=modules$1=[
15655 // { // class 转换函数
15656 // staticKeys: ['staticClass'],
15657 // transformNode: transformNode,
15658 // genData: genData
15659 // },
15660 // { //style 转换函数
15661 // staticKeys: ['staticStyle'],
15662 // transformNode: transformNode$1,
15663 // genData: genData$1
15664 // },
15665 // {
15666 // preTransformNode: preTransformNode
15667 // }
15668 // ]
15669
15670
15671
15672 if (options.modules) { //
15673 finalOptions.modules = (baseOptions.modules || []).concat(options.modules);
15674 }
15675 // merge custom directives 合并定制指令
15676 if (options.directives) {
15677 finalOptions.directives = extend(Object.create(baseOptions.directives || null), options.directives);
15678 }
15679 console.log(options)
15680
15681 // options 为:
15682
15683 // comments: undefined
15684 // delimiters: undefined
15685 // shouldDecodeNewlines: false

Callers 1

Calls 2

extendFunction · 0.85
detectErrorsFunction · 0.85

Tested by

no test coverage detected