Vue 数据绑定 和 数据渲染

news2024/11/29 12:48:12

目录

一、Vue快速入门

        1.简介 :  

        2.MVVM : 

        3.准备工作 : 

二、数据绑定

        1.实例 : 

        2.验证 : 

三、数据渲染

        1.单向渲染 : 

        2.双向渲染 : 


一、Vue快速入门

        1.简介 :  

        (1) Vue[/vju/],是Vue.js的简称,是一个前端框架,常用于构建前端用户界面。

        (2) Vue的核心库只关注视图层,易于上手,且支持和其他类库结合使用,便于与第三方库或项目整合,在开发复杂的单页应用时非常方便。

        2.MVVM : 

                (1) MVVM分别指Model(模型,包括数据及对数据的操作), View(视图,页面渲染结果), ViewModel(模型与视图间的双向操作)
                (2) Vue即是一个MVVM结构的前端框架,通过ViewModel中的Data Bingdings完成从M --> V的映射,通过ViewModel中的DOM Listeners完成从V --> M的事件监听
                (3) VM将DOM相关的操作封装起来,使开发人员只需要重点关注View 和 Model本身,而不需要关心View和Model之间具体是如何映射的,大大提高了开发效率
                其示意图如下 : 

        3.准备工作 : 

                首先需要到Vue官网下载vue.js,链接如下 : 
                https://v2.cn.vuejs.org/v2/guide/installation.html
                点击“开发版本”即可进行下载(以Vue2作为演示版本),如下图所示 : 

                还需要在IDEA的Settings-->Plugins中,搜索并下载Vue.js插件,以保证IDEA可以识别Vue代码。如下图所示 : 

                最后,在需要使用Vue的Project中,将官网下载的vue.js文件拷贝到Project中,如下图所示 : 


二、数据绑定

        1.实例 : 

                first_vue.html代码如下 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue---1st demo</title>
    <!-- 导入vue.js文件 -->
    <script type="text/javascript" src="../vue.js"></script>
</head>
<body>
    <!--
        定义一个div标签, 该标签的定义要在创建Vue实例之前,
        否则Vue实例无法挂载成功。
    -->
    <div id="div01">
        <h1>Hello!{{preface}}</h1>
        <h1>My name is {{blogger}}</h1>
    </div>
    <script type="text/javascript">
        /*
            (1)创建一个Vue实例;
            (2)el:"#div01",---表示将创建好的Vue实例挂载到id = div01的元素上
            (3)data属性表示数据池,其中保存了很多以"key-value"形式存放的数据。
                //data中的key可以由程序员手动定义
            (4){{key}}表示插值表达式,其中的数据来自model中的data数据池,
                //代码执行过程中,会到data数据池中尝试匹配数据,若匹配成功则进行替换
                //若匹配失败则显示为空串
         */
        let vm = new Vue({
            el:"#div01",
            data:{
                preface:"This is the first time to try Vue.",
                blogger:"Cyan_RA9"
            }
        });
    </script>
</body>
</html>

                运行结果 : 

        2.验证 : 

                在控制台输出创建的Vue实例,查看对象的结构,如下图所示 : 

                可以在Vue实例中,找到它维护的数据池data(包装成了_data),如下图所示 : 

                还可以找到DOM Listeners的相关组件,如下图所示 : 

                此时,如果在控制台修改Model中数据的值,就会通过Data Bindings自动更新View中显示的内容,如下图所示 : 


三、数据渲染

        1.单向渲染 : 

                (1) 使用插值表达式引用data数据池中的数据适用于一个标签的起始标签和结束标签之间,而不能在标签元素的属性上引用
                (2) 若想在标签元素的属性上引用data数据池,需要用到v-bind;格式为 v-bind:property_name="value",有时亦可简写为 :property_name="value"
                以显示图片为例,one_way.html代码如下 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>One-way Rendering</title>
    <script type="text/javascript" src="../vue.js"></script>
</head>
<body>
    <div id="app">
        <h1>{{heavenlyBody}}</h1>
        <!-- 插值表达式无法在标签的属性中起作用,如下 -->
        <img src="{{src}}"/>
        <!-- 此处应该使用v-bind进行单向数据渲染,如下 -->
        <img v-bind:src="img_src" v-bind:width="img_width"/>
        <img v-bind:src="img_src" v-bind:width="img_width"/>
        <!-- 简写 -->
        <img :src="img_src" :width="img_width"/>
    </div>

    <!-- 创建Vue实例,并将其挂载到id=app的div上 -->
    <script type="text/javascript">
        let vm = new Vue({
            el:"#app",
            data:{
                heavenlyBody:"Sun",
                img_src:"../sun.png",
                img_width:"300px",
            }
        });
    </script>
</body>
</html>

                运行结果 : 

        2.双向渲染 : 

                数据双向渲染需要用到v-model指令.
                以文本框的相互影响为例,two_way.html代码如下 : 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Two-way Rendering</title>
    <script type="text/javascript" src="../vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- 使用插值表达式取出data数据池中的数据 -->
        <h2>{{preface}} ---{{blogger}}</h2>
        <h3>Please input your fond color in the text bow below:</h3>
        <div>
            <!--
                (1)第一个input标签使用双向渲染,即Model -- View之间互相映射的实现。
                (2)当第一个input标签中的value改变时,会通过v-model双向渲染
                    修改data数据池中color属性的值,进而,下面的第二个input标签
                    以及p标签中都使用了v-bind:单向渲染,可以同步data中color数据的更新。
             -->
            <input type="text" name="color1" v-model="color"/>
        </div>
        <div>
            <!--
                第二个input标签使用单向渲染,使得data中的color变化时,
                能够反应到该input标签中。即Model到View的映射实现
             -->
            <input type="text" name="color2" v-bind:value="color"/>
        </div>
        <p><font v-bind:color="color">The color you like is: {{color}}</font></p>
    </div>

    <script type="text/javascript">
        let vm = new Vue({
            el: "#app",
            data: {
                preface: "Test two-way data Rendering~",
                blogger: "Cyan_RA9",
                color: "pink"
            }
        })
    </script>
</body>
</html>

                运行效果 : (如下GIF图)

        System.out.println("END------------------------------------------------------------");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SEC 学习】美化 Linux 终端

一、步骤 1. 进入 /etc/bash.bashrc vim /etc/bash.bashrc2. 重新加载 bash.bashrc source /etc/bash.bashrc二、各参数指标 符号含义\u当前用户的账号名称\h仅取主机的第一个名字&#xff0c;如上例&#xff0c;则为fc4&#xff0c;.linux则被省略\H完整的主机名称。例如&…

python之计算平面点集的的面积

在当今数据驱动的世界中&#xff0c;计算平面点集的最小外接轮廓面积被广泛应用于各种实际场景中。它是一项重要而魅力十足的任务&#xff0c;旨在找到一个最小的矩形或多边形区域&#xff0c;能够完全包围给定的离散点集。这个看似简单的问题背后隐藏着许多挑战&#xff0c;需…

034-第三代软件开发-自定义Slider(一)

第三代软件开发-自定义Slider(一) 文章目录 第三代软件开发-自定义Slider(一)项目介绍自定义Slider(一)总结一下 关键字&#xff1a; Qt、 Qml、 Slider、 position、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Met…

基本微信小程序的体检预约小程序

项目介绍 我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;体检预约系统小程序被用户普遍使用&#xff0c;为方便用户…

linux-vsftp虚拟多用户

目录 1.安装vsftp 2.安装DB工具&#xff0c;能转化普通文件为vsftpd识别数据库加密文件 3.创建登录虚拟用户的名单 4.加密文件 6.需要修改vsftpd的配置文件 7.修改vsftp的配置文件&#xff0c;加载支持虚拟用户模式 8.针对不同用户开启不同权限 9.重启服务 10.测试 安…

[动态规划] (二) LeetCode 面试题 08.01.三步问题

[动态规划] (二) LeetCode 面试题 08.01.三步问题 文章目录 [动态规划] (二) LeetCode 面试题 08.01.三步问题题意解析解题思路1.状态表示2.状态转移方程3.初始化和填表顺序4.返回值 代码实现总结 面试题 08.01. 三步问题 题意解析 (1) 小孩可以跳1-3阶台阶 (2) 结果很大&…

革新技术,释放创意 :Luminar NeoforMac/win超强AI图像编辑器

Luminar Neo&#xff0c;一个全新的AI图像编辑器&#xff0c;正以其强大的功能和独特的创意引领着图像编辑的潮流。借助于最新的AI技术&#xff0c;Luminar Neo为用户提供了无限可能的图像编辑体验&#xff0c;让每一个想法都能被精彩地实现。 Luminar Neo的AI引擎强大而高效&…

035-第三代软件开发-Qt属性系统

第三代软件开发-Qt属性系统 文章目录 第三代软件开发-Qt属性系统项目介绍Qt属性系统目的属性与类成员使用声明属性的要求 动态属性属性和自定义类型总结一下 关键字&#xff1a; Qt、 Qml、 Q_PROPERTY 、 setProperty、 属性 项目介绍 欢迎来到我们的 QML & C 项目&a…

Winsows QT5.15安装教程——组件务必要选上Sources

文章目录 1 下载地址2 开始安装2.1 选择一个磁盘空间大的位置安装QT&#xff0c;安装完可能会占用30G以上的空间2.2 选择组件2.3 接下来进入傻瓜式安装 3 QT 组件一览3.1 “Preview”分类下的开发组件3.1.1 编译器模块。3.1.2 “Qt ”分类下的开发组件 1 下载地址 https://www…

双向链表的初步练习

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇: Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”…

python项目之数学函数绘图软件(django)

项目简介 管理员用户&#xff1a; &#xff08;1&#xff09;个人信息管理&#xff1a;管理员用户可以通过此功能对自己的密码进行维护。 &#xff08;2&#xff09;用户信息管理&#xff1a;管理员用户通过此功能可以维护系统内注册用户的信息&#xff0c;比如可以对用户的姓…

NSS [鹤城杯 2021]EasyP

NSS [鹤城杯 2021]EasyP 直接给了源码 <?php include utils.php;if (isset($_POST[guess])) {$guess (string) $_POST[guess];if ($guess $secret) {$message Congratulations! The flag is: . $flag;} else {$message Wrong. Try Again;} }if (preg_match(/utils\.p…

CrossOver 23.6.0 虚拟机新功能介绍

CrossOver 23.6.0 Mac 此应用程序允许您运行为 Microsoft Windows 编写的程序&#xff0c;而无需实际安装操作系统。 CrossOver 23.6.0 Mac 包括一个 Windows 程序库&#xff0c;用于它可以运行的 Windows 程序。 您会发现非常流行的应用程序&#xff0c;例如 Microsoft Word…

【JavaEE】HTTP协议

HTTP协议 HTTP是什么?HTTP 协议格式HTTP 请求格式HTTP响应格式协议格式总结 HTTP 请求 (Request)认识 URLURL 基本格式 关于 URL encode认识 "方法" (method)1. GET 方法2. POST 方法 认识请求 "报头" (header) HTTP 响应详解认识 "状态码" (st…

JDK项目分析的经验分享

基本类型的包装类(Character放在最后) String、StringBuffer、StringBuilder、StringJoiner、StringTokenizer(补充正则表达式的知识) CharacterIterator、StringCharacterIterator、CharsetProvider、CharsetEncoder、CharsetDecoder(较难) java.util.function下的函数表…

word公式编辑器能计算吗 word怎么添加公式编辑器

word作为常用的办公软件&#xff0c;常与公式编辑器配合使用来写论文。但该如何在word中使用公式编辑器呢&#xff1f;本文将介绍word公式编辑器能计算吗&#xff0c;word怎么添加公式编辑器的相关内容。 一、word公式编辑器能计算吗 对于word公式编辑器能计算吗这个问题&am…

遇到的题目

第一个线程打印10次a ,第二个线程打印10次吧&#xff0c;第三个线程打印10次c&#xff0c;三个线程交替打印abc public class PrintABC {private static final Object lock new Object();private static int count 0;public static void main(String[] args) {Thread threadA…

nodejs+vue+elementui+express酒店管理系统

登录&#xff1a;运行系统后&#xff0c;进行登录&#xff0c;可使用本系统。 客房预定&#xff1a;此界面先通过条件查询客房信息&#xff0c;然后进行客房预定。对预定的客房还可以取消和支付操作。 信息查询&#xff1a;可查询所有的公告信息&#xff0c;点击公告名称&#…

【黑马程序员】mysql进阶再进阶篇笔记

64. 进阶-锁-介绍(Av765670802,P121) 为了应对不同场景 全局锁-所有表 表计锁 一张表 行级锁 一行数据 65. 进阶-锁-全局锁-介绍(Av765670802,P122) 66. 进阶-锁-全局锁-一致性数据备份(Av765670802,P123) 67. 进阶-锁-表级锁-表锁(Av765670802,P124) 读锁、写锁 68. 进阶…

List 3.5 详解原码、反码、补码

前言 欢迎来到我的博客&#xff0c;我是雨空集&#xff08;全网同名&#xff09;&#xff0c;无论你是无意中发现我&#xff0c;还是有意搜索而来&#xff0c;我都感到荣幸。这里是一个分享知识、交流想法的平台&#xff0c;我希望我的博客能给你带来帮助和启发。如果你喜欢我…