el
首先说明一下,本人是前端小学生级别的菜鸡,吐槽的话请口下留情,在评论区指出错误或者补充不足,我会很喜欢,互喷不会进步,相互指点才会。。。。谢谢大家啦
目录
- el
- 目录
- 示例
- 原理
📌Vue.js 中的
el
(Element)属性是 Vue 实例的一个配置选项。它用于指定 Vue 应用程序挂载到哪个DOM
元素上。当一个Vue
实例被创建时,el
属性告诉Vue
应该将生成的视图(即由模板或render
函数渲染出的DOM
内容)附加到哪个实际存在的HTML
元素内。强烈建议不要挂载body
示例
- 在全局
Vue
实例(如通常在应用入口文件中定义的应用根组件)中,el
可以是一个CSS
选择器字符串或者直接是一个HTMLElement
对象。在实例挂载之后,元素可以用vm.$el
访问。 - 在组件定义中,由于组件通常是作为整体嵌入到其他组件中的,所以组件的
el
选项只能是一个返回HTMLElement
的函数,并且仅在Vue 2.x
版本的自定义元素和某些特定高级场景下使用;对于常规的单文件组件(.vue 文件),无需也并不允许设置el
属性。 - 限制: 只在用
new
创建实例时生效。
new Vue
时候配置el
属性。
在上面的例子中,// 页面 HTML 部分 <div id="app">{{ message }}</div>// 全局 Vue 实例 new Vue({el: '#app', // 这里 'app' 是页面中某个元素的id //el:'#root'data: {message: 'Hello, world!'} })
Vue
实例通过el: '#app'
指定了要挂载的DOM
元素,即具有id="app"
的<div>
元素。当创建Vue
实例时,Vue
将会在这个元素上建立实例与DOM
的关联,并开始进行模板的编译和挂载操作。- 先创建**
Vue
实例,随后再通过vm.$mount('#root')
指定el
**的值。
在整个过程中,const vm = new Vue({ data:{name:'赵新坤' } }) console.log(v) //第二种写法,必须有变量接收实例才可以用,更灵活一点 //可以用定时器包裹等。 vm.$mount('#root')
Vue
通过虚拟DOM
和响应式数据系统,实现了高效的页面渲染。Vue
会在数据发生变化时,重新计算虚拟DOM
,然后通过差异比对算法将变化的部分更新到实际的DOM
上,从而实现数据驱动的视图更新。
原理
📌在
Vue.js
中,el
属性用于指定一个已存在的DOM
元素,Vue
将会在这个元素上挂载实例,从而建立起Vue
实例与DOM
之间的联系。这个过程是通过Vue.js
的挂载(mounting)阶段来实现的。
- 选择元素:
Vue
首先会通过el
选项获取到要挂载的DOM
元素。 - 模板编译: 如果提供了
template
选项,Vue
会将模板进行编译,生成渲染函数。 - 挂载阶段:
Vue
将渲染函数(render
函数或者template
编译后的渲染函数)与实例关联,然后将其挂载到指定的DOM
元素上。 - 渲染:
Vue
在挂载后会触发初始渲染,将虚拟DOM
转换为真实DOM
,显示在页面上。