首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏睡不着所以学编程

    Vue笔记(6)

    此时的$refs 比如我们现在在子组件中添加一个data 现在在父组件中可以这样访问: $parent 浅浅套个娃: 还好我跟得上hhh,不然真的有点看不懂了 按按钮: 是一个vue 组件对象 现在在父组件的data里添加一个name属性: 然后在子组件中打印出来: 但是这个用的也很少 $root 我们直接在刚刚的子组件里面访问根组件,看看出来的是什么: 是我们的Vue

    72710编辑于 2022-09-20
  • 来自专栏coding个人笔记

    vue mixins原理

    以前一直以为mixins在vue里面应该不是很重要,只是提供了一个混入的api,慢慢的才知道mixin在vue里面非常重要。生命周期、vuex等都有mixin的影子,在内部算是很重要的一个api。 核心有了其他都是调用了,比如把mixin方法挂载到vue上可以直接调用: Vue.mixin = function (mixin) { // 将属性合并到Vue.options上 this.options this.options,mixin); return this; } 初始化的时候先合并一次,生命周期也是,在状态初始化之前先调用beforeCreate,初始化之后调用created,源码搜索Vue.prototype

    59610发布于 2020-09-14
  • 来自专栏全栈程序员必看

    Vue router原理

    总结: vue-router是vue项目的重要组成部分,用于构建单页应用。单页应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。 中实现原理 VueRouter核心是,通过Vue.use注册插件,在插件的install方法中获取用户配置的router对象。 1.url改变 2.触发事件监听 3.改变vue-router中的current变量 4.监视current变量的监视者 5.获取新的组件 6.render // 存储全局使用的Vue对象 let _Vue = null class VueRouter { // vue.use要求plugin具备一个install方法 static install (Vue) { = Vue // 将main文件中实例化Vue对象时传入的router对象添加到Vue的原型链上。

    71110编辑于 2022-09-18
  • 来自专栏青益云记

    「   vue拦截原理  」

    摘自vue文档官网 当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的 property,并使用 Object.defineProperty Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是 Vue 不支持 IE8 以及更低版本浏览器的原因。 这些 getter/setter 对用户来说是不可见的,但是在内部它们让 Vue 能够追踪依赖,在 property 被访问和修改时通知变更。 3的变化 Object.defineProperty有以下缺点: 无法监听es6的Set、Map 变化; 无法监听Class类型的数据; 属性的新加或者删除也无法监听; 数组元素的增加和删除也无法监听 针对Object.defineProperty的缺点,ES6 Proxy都能够完美得解决,它唯一的缺点就是,对IE不友好.所以vue3在检测到如果是使用IE的情况下((没错,IE11都不支持Proxy)

    59930编辑于 2023-01-15
  • 来自专栏不止是前端

    Vue驱动原理

    前言 面试的时候问起vue原理,大部分的人都会说通过Object.defineProperty修改属性的get, set方法,从而达到数据改变的目的。 然而作为vue的MVVM驱动核心,从数据的改变到视图的改变,远远不止这句话就能解释,而是通过Observer, Dep, Watcher, Compile 4个类以及一个CpompileUtil辅助类完成 方法时,根据Dep.target是否存在将Wathcher加入到Dep的数组中,每次属性改变set时,调用这个属性的Dep.notify方法通知订阅该属性的Watcher修改自己的状态 Compile(在Vue 因为初始化的时候,并不需要进行依赖收集 数据发生改变 当data中的某一项数据发生改变时,将调用这个属性的Dep的notify方法,通知订阅了该属性的Watcher调用自身的update方法改变DOM 总结 vue 就是通过以上的几个类实现了完整的MVVM模式,不同的是vue拥有更加完整的CpmpileUtil方法,针对每一个指令以及一些绑定添加特殊的updateFn方法。

    86250发布于 2018-06-08
  • 来自专栏柠檬先生

    VUE 入门基础(6)

        

          Not A/B/C     
      v-else-if必须跟在v-if或者v-else-if之后   使用key控制元素的可重用   vue example-1">       
  • {{item.message}}
  •     
    var example1 = new Vue parentMessage}} - {{ index }} - {{ item.message }}                 var example2 = new Vue , index) in items" v-bind:item="item" v-bind:index="index">       </my-component>   key     为了给vue 数组更新检测   变异方法     vue包含一组观察数组的变异方法,所以我们将会触发视图更新,这些方法如下。     

1.8K90发布于 2018-01-22
  • 来自专栏全栈程序员必看

    vue双向数据绑定原理面试_vue双向绑定原理

    vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调 vue实现双向数据绑定的原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的。 面试官:说一下VUE双向绑定的原理? 答:VUE实现双向数据绑定的原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的。

    1.7K50编辑于 2022-11-02
  • 来自专栏全栈程序员必看

    babel es6转es5原理_vue用es6还是es5

    npm install –save-dev babel-preset-es2015 babel-cli

    53720编辑于 2022-09-29
  • 来自专栏全栈程序员必看

    webpack es6转es5原理_webpack和vue cli区别

    presets:['es2015'] } 之后在webpack打包输入 npm run build 这样所有的es6就转成了

    56120编辑于 2022-11-08
  • 来自专栏Vue源码 & 前端进阶体系

    Vue原理Vue源码阅读总结大会

    专注 Vue 源码分享,为了方便大家理解,分为了白话版和 源码版,白话版可以轻松理解工作原理和设计思想,源码版可以更清楚内部操作和 Vue的美,喜欢我就关注我的公众号,好吧兄弟,不会让你失望的 阅读源码是需要很多的勇气的 ,特别是对这种 Vue 源码的框架,十分抽象,使用了好多设计模式,封装得十分精密。 我可以保证,你从不懂到掌握,只要不到十分钟,简直就是 现实版的 十分钟精通到入门 好吧,下面开始说,Vue 的简单总结。 Vue 源码的简短的总结 1、封装了很多常用的函数! 6、NextTick ,延迟执行回调 7、Render, 渲染机制 8、LifeCircle ,生命周期 9、Model ,双向绑定 10、Event ,事件机制 Vue 组件选项 1、computed 2、filter 3、mixin 4、directive 5、slot 6、props 7、watch 我就大约以这些为我的学习目标进行 源码阅读的,每一块都是一个非常大的内容,每一块内容都不是几天能看完的

    95810发布于 2019-08-04
  • 来自专栏前端专享

    VUE 响应式原理

    Vue2 Object.defineProperty 实现响应式 function observe(data) { if (!data || typeof data !

    35220发布于 2021-11-15
  • 来自专栏杨不易呀

    【手写Vue】-Vue双向数据绑定原理

    Vue响应式的原理(数据改变界面就会改变)是什么? 时时监听数据变化, 一旦数据发生变化就更新界面, 这就是Vue响应式的原理Vue是如何实现时时监听数据变化的 通过原生JS的defineProperty方法, 通过get和set方法来监听数据的变化。 Vue双向数据绑定原理-下这一篇文章主要讲解Vue双向数据绑定的原理,主要是通过Object.defineProperty()来实现的,这里我们手写Vue双向数据绑定的原理

    81731编辑于 2023-11-17
  • 来自专栏web

    vue 响应式原理

    响应式原理 简单点讲 vue 的响应式是通过 Object.defineProperty 和 观察者模式来实现的。 vue 初始化的时候 watcher 构造函数通过 Object.defineProperty 方法对 data 属性进行递归遍历,设置 get、set,初始化编译的时候会触发 getter 函数,进行依赖收集

    75320发布于 2020-04-01
  • 来自专栏grain先森

    Vue 原理解析

    vue也有很长一段时间,用它做过移动端项目 pc项目 SaaS平台等等,总体来说vue 还是相对于简单的、建立于良好的文档和开箱即用的脚手架, vue在前端框架的热度一直很高, 最近正好在研究vue的源码 毕竟学习之路基本都是学轮子 -> 看源码 -> 造轮子 逐步精进来的, 网上有非常多的vue原理解析的文章,可能我写的不算太好不过还是写下来作为一个积累和总结。 可以理解为 virtual dom + patch 也就是负责视图层的渲染 可以用个简单的思维导图来说明下大概原理 ? 结语 其实我觉得vue原理基本上就相当于代理者模式+订阅发布模式来实现的, 我觉得看源码就要直奔主题,先把主枝干理清除,了解自己想要得到什么,整个过程就会清晰明了, 主要放一个自己的ts版的简单实现, 写的很简陋,但是能够大概看出vue原理,有兴趣的可以看下 ts版vue简易原理

    1K20发布于 2019-03-29
  • 来自专栏web share

    Vue路由实现原理

    Vue 路由的两种模式就是基于location和history这2个对象的。 二、路由模式对比 1. _route = route }) }) } app为Vue组件实例,但是Vue作为渐进式的前端框架,本身的组件定义中应该是没有有关路由内置属性_route,如果组件中要有这个属性,应该是在插件加载的地方 ,即VueRouter的install()方法中混入Vue对象的,install.js的源码: export function install (Vue) { Vue.mixin({ ,影响注册之后所有创建的每个Vue实例,该混合在beforeCreate钩子中通过Vue.util.defineReactive()定义了响应式的_route属性。 所谓响应式属性,即当_route值改变时,会自动调用Vue实例的render()方法,更新视图。

    1.5K30发布于 2021-01-11
  • 来自专栏Czy‘s Blog

    Vue事件绑定原理

    Vue事件绑定原理 Vue中通过v-on或其语法糖@指令来给元素绑定事件并且提供了事件修饰符,基本流程是进行模板编译生成AST,生成render函数后并执行得到VNode,VNode生成真实DOM节点或者组件时候使用 -- 组件中的原生事件 --> <my-component @click.native="onClick"></my-component> 分析 Vue源码的实现比较复杂,会处理各种兼容问题与异常以及各种条件分支 编译阶段 Vue在挂载实例前,有相当多的工作是进行模板的编译,将template模板进行编译,解析成AST树,再转换成render函数,而在编译阶段,就是对事件的指令做收集处理。 BB%B6-amp-%E6%8C%89%E9%94%AE%E4%BF%AE%E9%A5%B0%E7%AC%A6 // check capture modifier if (modifiers.capture -source/blob/master/%E4%BA%8B%E4%BB%B6%E5%A4%84%E7%90%86.md

    9.6K40发布于 2020-09-10
  • 来自专栏前端心念

    vue双向绑定原理

    官方话 vue数据的双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。 obj = {} 3Object.defineProperty(obj,"prototypeName",{ 4 get: function() { 5 console.log("调用了get") 6

    80430编辑于 2023-01-11
  • 来自专栏小孟开发笔记

    vue双向绑定原理

    Vue双向绑定的原理 一、在讲vue双向绑定之前我们需要来了解下MVVM模式 MVVM(Model-View-ViewModel)是对 MVC(Model-View-Control)和 MVP(Model-View-Presenter ViewModel 感知到变化,然后通知 Model 发生相应改变;反之当 Model 发生改变,ViewModel 也能感知到变化,使 View 作出相应更新 MVVM框架的的核心就是双向绑定, 其原理是通过数据劫持 实例中的数据渲染到页面上 将页面上的数据变更同步到vue实例中 vue实例中data数据变更 页面上数据同步变更 传统的js来操作dom是非常繁琐的 性能及低的 比如我们要操作 dom 10次 操作第一次的时候 v-model中的对应的变量跟vue data中的变量进行匹配,匹配到对应项,然后进行更新数据 vue构造函数 // 构造函数 function Vue(options){ this.data this.value //更改节点内容的关键 }, get() { this.value = this.vm[this.name] //触发相应的get } } 如此 双向绑定原理已经介绍完成

    59920编辑于 2023-10-13
  • 来自专栏全栈程序员必看

    Vue双向绑定原理

    vue的双向绑定原理vue数据的双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。 obj.prototypeName // 调用了get obj.prototypeName = 'hello' // 调用了set,新值是hello 实现过程: 先附上一张网图 首先再vue 这里不做具体代码展示,具体方法实现可以参考 这里 vue源码 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    95970编辑于 2022-11-02
  • 来自专栏前端小菜鸟

    Vue响应式原理

    Vue响应式原理 Vue是数据驱动视图实现双向绑定的一种前端框架,采用的是非入侵性的响应式系统,不需要采用新的语法(扩展语法或者新的数据结构)实现对象(model)和视图(view)的自动更新,数据层( 的响应式实现的基本原理Vue在初始化对象的之前将数据定义在data对象中,初始化实例时对属性执行 getter/setter 转化过程,所以只有定义在data对象上的属性才能被劫持(被转化),同时因为 节选 染陌同学:Vue响应原理 function observe(value, cb) { Object.keys(value).forEach((key) => defineReactive (Vue: Class<Component>) { Vue.prototype. 参考 Vue DOC: 深入响应式原理 深入 Vue 响应式原理,活捉一个 MVVM(超详细!) 响应式原理 Vue-learn 深入理解Vue响应式原理

    1.2K00发布于 2020-05-23
  • 领券