vue指令的三要素是什么

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

vue指令的三要素是什么

vue指令的三要素是响应式、模板引擎和渲染。响应式是指当更新或者增加数据时,页面会有响应,重新渲染对应的数据;模板引擎本质上是字符串,作为实例的标识使用;渲染指的是模板转换成其他代码的过程。

本文操作环境: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:必需。目标属性所拥有的特性

基础

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

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

var obj = {} var name = 'zhangsan' Object.defineProperty(obj, "name", {  get: function () {    console.log('get');    return name;  },  set: function (newVal) {    console.log('set');    name = newVal;  }}); console.log(obj.name); // 可以监听到obj.name = 'lisi'; // 可以监听到
登录后复制

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

3) 模拟

var mv = {} var data = {  price: 100,  name: 'zhangsan'} var key, value;for (key in data) {   // 命中闭包。新建一个函数,保证 key 的独立的作用域  (function (key) {Object.defineProperty(mv, key, {  get: function () {    console.log('get');    return data[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 函数

基础事例

 <div id="app">    <div>      <input v-model="title">      <button v-on:click="add">submit</button>    </div>    <ul>      <li v-for="item in list">{{item}}</li>    </ul>  </div>
登录后复制

以上就是一个模板。

【相关推荐:《vue.js教程》】

以上就是vue指令的三要素是什么的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:一文带你聊聊Nodejs中读写文件的操作
下一篇:laravel 找不到页面

发表评论

关闭广告
关闭广告