elementUI文档的实现方案( 二 )
vue demo component是如何生成的
我看md-loader的入口文件index.js传送门里有这么一段代码, let demoComponentContent = genInlineComponentText(html, script);, 这段代码的功能就是生成demo component字符串 ,我们可以跳转到util.js看到如下内容:
functiongenInlineComponentText(template,script){ //... constcompiled=compileTemplate(finalOptions); //... letdemoComponentContent=` ${compiled.code} `;//模板代码转成vue使用$createElement生成html的render函数 //... demoComponentContent=`(function(){ ${demoComponentContent} ${script} return{ render, staticRenderFns, ...democomponentExport } })()`; returndemoComponentContent;//返回字符串 }上面的代码主要使用了@vue/component-compiler-utils vue-template-compiler来编译template模板 , 把template模板转成render函数创建dom语法 ,然后拼接demo component字符串 。
总结
【elementUI文档的实现方案】结合markdown文件如何解析与vue demo代码标记和vue demo component是如何生成的这两段的内容再重新看一遍md-loader的入口文件index.js传送门可以发现程序的流程为:markdown => html => 提取( )中的vue代码 => 编译里面的vue代码 , 返回demoComponentContent字符串 => 把html代码与demoComponentContent拼接起来组成新的vue代码 。
//第一步 constcontent=md.render(source);//经过md编译好的代码,对应markdown文件如何解析与vuedemo代码标记 //第二步 while(...){//对应vuedemocomponent是如何生成的 //... letdemoComponentContent=genInlineComponentText(html,script);//把html,和js组成组件代码. //... } //第三步 //.... return`${output.join('')}//这是md转的html${pageScript} `;
推荐阅读
- 第一财经|8月外储实现五连升,双循环格局将继续支持规模总体稳定
- 【】前8个月我国外贸总值突破20万亿元 出口首次实现年内正增长
- 央视新闻客户端|前8月我国外贸总值突破20万亿 出口首次实现年内正增长
- 人民币|8月外储实现五连升,双循环格局将继续支持规模总体稳定
- 一味宠爱|最全盘点卡中国脖子的35项技术,折射中国工业水平的真实现状
- 上海宝山|实现加装电梯“零突破”!,罗店这个小区这样做
- 央视新闻客户端|前8个月我国外贸总值突破20万亿元 出口首次实现年内正增长
- 科内|意大利超级杯结束!科内实现3连冠,诺瓦拉全新阵容令人失望
- 智能垃圾分类小屋亮相服贸会 可实现一站式垃圾分类
- |《病患悖论》关注“过度医疗” 实现健康不是靠更多的医药
