VUE---3.插值符原理

本文深入探讨了Vue.js中的插值符原理,包括其作为字符串模板的功能,以及当data中的数据变化时如何影响视图。详细介绍了使用步骤,包括插值符的写法和Vue实例的创建。同时,文章揭示了Vue底层的JS实现,通过创建类Vue并模拟数据绑定的过程,帮助读者更深入地理解Vue的工作方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

插值符原理,代码附有哦


一、插值符是什么?

        1. 插件符 {{表达式}} || 字符串模板

        2. 是将数据转化成字符串输出

        3. data发生变化 视图(HTML)结构也会发生变化

二、使用步骤

1.插值符写法

代码如下(示例):

<div id="app">

        {{name}}--插值符

        <p>{{age}}</p>

        {{sex}}

    </div>

2.引入Vue(根据自己的vue文件地址来)

代码如下(示例):

<script src="../vue.js"></script>

3.JS原理---Vue底层写法

<script>

        // vue 底层写法 => 能懂更好,,,不懂了解即可 => 更加的了解vue

        class  Vue{

            constructor(value){

                // 获取html节点

                this.$el = document.querySelector(value.el);

                // 将数据放置在_data上

                this._data= value.data;

                // 初始化

                this.$el.append(this.init(this.$el))

            }

            // 初始化

            init(node){

                // 创建文本代码片段 存储虚拟DOM(在程序的内存中比较) 虚拟DOM很小

                let fram = document.createDocumentFragment();

                let child;;

                // 第一个子节点

                while(child = node.firstChild){

                    this.renderDOM(child)

                    // 插入 剪切节点功能

                    fram.appendChild(child)

                }

                return fram

            }

            //渲染处理的

            renderDOM(node){

                switch (node.nodeType) {

                    // 元素节点

                    case 1:

                        node.append(this.init(node))

                        break;

                    // 文本节点

                    case 3:

                        // 正则 Reg 用于匹配 {{}}  

                        let Reg = /\{\{(.*)\}\}/g

                        // Reg.test() 正则方法 判断是否符合正则规则

                        if(Reg.test(node.nodeValue)){

                            // 获取正则匹配的数据

                            let name = RegExp.$1.trim();

                            node.nodeValue = node.nodeValue.replace(Reg,this._data[name])

                        }

                        break;

                    default:

                        break;

                }

            }

        }

        // 实例化

        let vm = new Vue({

            el:"#app",

            data:{

                name:"路遥111",

                age: 18,

                sex:"女"

            }

        })

    </script>


总结

1. 插件符 {{表达式}} || 字符串模板

2. 是将数据转化成字符串输出

3. vue中data发生变化 视图(HTML)结构也会发生变化

4. 了解{{}}插件符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值