正如从文档中看到的那样,目的$mount()
是有一个未安装的 vue 实例并在以后安装它。从文档:
如果 Vue 实例在实例化时没有收到 el 选项,它将处于“未安装”状态,没有关联的 DOM 元素。vm.$mount() 可用于手动启动未挂载的 Vue 实例的挂载。
我相信el:"#rooty"
这只是提供给用户的语法糖,$mount
因为内部$mount
用于将实例附加到 HTML 元素。从vue repo中查看以下代码:
export function initRender (vm: Component) {
...
...
// bind the createElement fn to this instance
// so that we get proper render context inside it.
// args order: tag, data, children, needNormalization, alwaysNormalize
// internal version is used by render functions compiled from templates
vm._c = (a, b, c, d) => createElement(vm, a, b, c, d, false)
// normalization is always applied for the public version, used in
// user-written render functions.
vm.$createElement = (a, b, c, d) => createElement(vm, a, b, c, d, true)
if (vm.$options.el) {
vm.$mount(vm.$options.el)
}
}