您的位置:宽带测速网 > mysql教程 > vue指令的三要素有哪些

vue指令的三要素有哪些

2025-06-21 11:20来源:互联网 [ ]

vue指令的三要素是响应式、模板引擎和渲染。响应式是指当更新或者增加数据时,页面会有响应,重新渲染对应的数据;模板本质上是字符串,模板最终转换成js代码。

本文操作环境:windows10系统、Vue2.9.6版,DELL G3电脑。

vue指令的三要素是什么

veu中的三要素

    响应式:vue如何监听到 data 每个属性变化?

    模板引擎:vue的模板如何被解析,指令如何处理?

    渲染:vue 的模板如何被渲染成 html?以及渲染过程

    vue 如何实现是响应式

    Object.defineProperty

    模拟

    1) 什么是响应式

    修改 data 属性之后, vue 立刻监听

    data 属性被代理到 vm 上

    2) Object.defineProperty

    语法:

    Object.defineProperty(obj,prop,descriptor)

    参数说明:

      obj:必需。目标对象

      prop:必需。需定义或修改的属性的名字

      descriptor:必需。目标属性所拥有的特性

      基础

      varobj={name:'zhangsan',age:25}console.log(obj.name);//获取属性的时候,如何监听obj.age=26;//赋值属性的时候,如何监听

      我们用defineProperty方法实现上面的操作:如下

      varobj={}varname='zhangsan'Object.defineProperty(obj,"name",{get:function(){console.log('get');returnname;},set:function(newVal){console.log('set');name=newVal;}});console.log(obj.name);//可以监听到obj.name='lisi';//可以监听到

      使用defineProperty我们就可以监听到数据变化了。其中这个也是 vue 做响应工做核心的方法了。

      3) 模拟

      varmv={}vardata={price:100,name:'zhangsan'}varkey,value;for(keyindata){//命中闭包。新建一个函数,保证key的独立的作用域(function(key){Object.defineProperty(mv,key,{get:function(){console.log('get');returndata[key];},set:function(newVal){console.log('set');data[key]=newVal}})})(key);}

      vue的模板如何被解析

      模板是什么

      render 函数

      render 函数 与 vdom

      1) 模板是什么

      本质:字符串

      有逻辑,如 v-if v-for等

      与 html 格式很像,但有很大的区别

      最终还要转换成 html 来显示

      模板最终必须转换成 JS 代码, 因为:

      有逻辑(v-if v-for),必须用 JS 才能实现( 图灵完备)

      转换为 html 渲染页面,必须用 JS 才能实现

      因此,模板最重要转换成一个 JS 函数

      基础事例

      <divid="app"><div><inputv-model="title"><buttonv-on:click="add">submit</button></div><ul><liv-for="iteminlist">{{item}}</li></ul></div>

      以上就是一个模板。

vue