Vue 为什么在 HTML 中监听事件?

回答·7
最热
最新
  • 因为所有的 Vue.js 事件处理方法和表达式都严格绑定在当前视图的 ViewModel 上,它不会导致任何维护上的困难。实际上,使用 v-on 有几个好处: 扫一眼 HTML 模板便能轻松定位在 JavaScript 代码里对应的方法。 因为你无须在 JavaScript 里手动绑定事件,你的 ViewModel 代码可以是非常纯粹的逻辑,和 DOM 完全解耦,更易于测试。 当一个 ViewModel 被销毁时,所有的事件处理器都会自动被删除。你无须担心如何自己清理它们。
  • 首先要明确一点,VUE并不是在HTML中监听事件,VUE底层是通过动态注册事件来实现事件监听的。VUE只不过是在HTML中记录每个节点都绑定了哪些具体的事件。 因为Vue会动态的插入dom节点,为了在增加dom节点时,仍然保留dom节点上绑定的事件,所以VUE需要记录节点上绑过的每个具体事件。在节点新增成功后,再把事件一一的绑定到对应的节点上。 VUE是基于模板语言来实现数据的双向绑定,根据其设计,通过把事件记录在HTML中无疑是一个比较好的解决方案。 个人理解,说的不对,欢迎指正,谢谢。
  • ?vue在html中监听事件是什么意思? vue渲染的是根据虚拟dom一步步对比渲染 虚拟dom树中如果有属性,则去访问该属性的get方法并收集该属性的依赖关系。 换言之,可以说vue监听了属性的改变,在属性被set的时候,去一步步执行依赖属性的get
  • 1、看一眼就能在html中找到js中定义的方法 2、不用在js中手动绑定事件,和DOM完全解藕,方便测试 3、当视图被销毁时,所有的事件处理器都会一同销毁,你就不用自己清理了
  • 我理解的,这是VUE人性化的地方。
  • 因为vue要根据数据的改变驱动渲染页面,渲染的触发需要用事件来驱动。
  • - 模板编译阶段, @事件  会被解析为  v-on  指令,最终通过  addEventListener  绑定事件(支持原生事件)。   - 对于自定义组件,事件绑定会转为组件实例的  $on  方法监听(通过  props  和  emit  机制实现)。   - 组件卸载时,Vue 自动通过  removeEventListener  解绑事件,避免内存泄漏。
  • diff
  • - 模板编译阶段, @事件  会被解析为  v-on  指令,最终通过  addEventListener  绑定事件(支持原生事件)。   - 对于自定义组件,事件绑定会转为组件实例的  $on  方法监听(通过  props  和  emit  机制实现)。   - 组件卸载时,Vue 自动通过  removeEventListener  解绑事件,避免内存泄漏。