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,显示在页面上。