vue.js - 关于函数 _createElement() 中 Vue.js 源码的一个问题
问题描述
中_createElement
,我想问一下是否data.is
一样v-bind:is
?
为什么tag = data.is
?
感谢每一位答主!
解决方案
正如代码中的注释所暗示的那样,该行专门用于处理is
包含在 object中的情况v-bind
。例如:
<component v-bind="{ is: 'button' }">Button</component>
您可以通过在浏览器中的该行设置断点来亲眼看到这一点。我正在使用 Webpack 和 Chrome,相关文件出现webpack:///./node_modules/vue/dist/vue.esm.js
在Sources选项卡下。快速搜索_createElement
并单击边距以设置断点。
在上面的示例中,该is
值旨在用作tag
,而component
只是一个可以丢弃的虚拟标签。
上面的语法等价于:
<component is="button">Button</component>
或者:
<button>Button</button>
但是,这两个示例都不会进入相关if
部分。在这其他两种情况下,tag
在此之前已经正确解决。
推荐阅读
- amazon-product-api - 亚马逊支付集成:我在哪里可以获得 preSharedEncodedKey?
- c# - c#是否可以为字符串关键字创建扩展方法
- apache - modrewrite 并使用 www 重定向到 https
- oracle-apex - 交互式网格 - 过滤具有多个值的列 (Oracle APEX 19.2)
- angular - 确认对话框接受不更新表
- django - Django(2.11) 同时(10 毫秒内)相同的 HTTP 请求
- javascript - 如何使用拆分按钮创建可折叠的内容?(HTML/CSS/JS)
- nosql - MS Access DB 到天蓝色
- r - 有没有办法返回 R 函数中定义的所有对象?
- javascript - 如何从数组中获取项目并以正确的顺序嵌套它们?