vue如何避免DOM操作

大家好,今天小编来为大家解答以下的问题,关于什么属于操作dom,为什么vue避免了dom操作,vue不建议用指令这个很多人还不知道,现在让我们一起来看看吧!

本文目录

  1. vue不用npm能跑起来吗
  2. vue每次运行都要build吗
  3. 为什么要使用vue不使用js
  4. 什么属于操作dom,为什么vue避免了dom操作

vue不用npm能跑起来吗

不能

VueCLI:VueCLI是一个命令行界面工具,用于创建Vue项目和管理其依赖项。VueCLI依赖于Node.js来提供基本的构建功能,如打包和编译代码,同时还支持自动化测试和部署

vue每次运行都要build吗

答案不是。

因为build是webpack将vue项目打包压缩,然后发布到服务器上的一个功能模块,方便外部人员的浏览与测试,这个时候,每发布一次就需要build一次代码。

但是如果你只是在本地做项目的开发,是不需要用到build命令的,直接通过rundev命令就可以运行。

vue项目是分为两种环境的,一种是开发环境不需要build,另外一种是发布环境则需要build命令。

为什么要使用vue不使用js

因为vue进行的二次封装,比如封装了浏览器事件,操作dom封装了自己的指令,服务器请求数据后更新dom的机制也进行了双向绑定

什么属于操作dom,为什么vue避免了dom操作

什么属于操作dom?需要回答这个这个问题,首先,我们必须明白什么是dom;DOM是DocumentObjectModel(文档对象模型)的缩写;

那么,有哪些dom操作呢?比如查找节点、添加节点、删除节点、修改节点属性,修改节点内容等等

对于为什么vue避免了dom操作,其实,根据我的理解,并不是vue避免了dom操作,而是vue的架构中,已经帮我们完成了这些操作,亦或者说是,它是通过数据的改变,去自动驱动dom的改变,在我们平常看来,我们只需要修改数据,那么整个dom结构,文档内容都会自动完成,就好像我们没有进行dom操作一样,其实不然,只是当我们进行数据改变的时候,vue已经帮我们完成了dom操作而已;

这也就是所谓的双向绑定,数据驱动;

比如,当我们需要在对某个元素进行数据绑定时,我们都知道,直接在元素上添加"v-text='text'"当text值变化时,对应元素的内容也就改变了;那么,它里面具体干了些什么呢?

首先,我们应该明白,“v-text”其实是vue中的一个指令,也就是directive;源码如下:

也就是在将v-text绑定到元素上时,首先会判断此元素的元素类型,如果nodetype是3,也就是文本节点时,如果是文本节点,则通过修改其data属性去修改文本内容;如果是其他节点,则通过修改其textContent去修改节点的值;当值变化时,就会执行“this.el[this.attr]=_toString(value)”去修改节点内容;

所以,其实vue并不是避免了dom操作,它其实也进行了dom操作,只是包含在框架内,让我们没有明显感知到而已

关于什么属于操作dom,为什么vue避免了dom操作,vue不建议用指令的介绍到此结束,希望对大家有所帮助。

vue 数据刷新 但 dom层不刷新问题