前端:Vue

news2025/1/22 13:09:38

一、引入

Vue是一套前端框架,免除javaScript中的DOM操作,简化书写。基于MVVM思想,实现数据的双向绑定,将编程的关注点放在数据上。
框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。基于框架进行开发,更加快捷、更加高效。

二、下载

下载地址:https://v2.vuejs.org/v2/guide/installation.html
在这里插入图片描述

三、Vue快速入门

①新建HTMl页面,引入Vue.js文件

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

②在Js代码区域,创建Vue核心对象,定义数据模型

 new Vue({
        el:"#app" ,/* 这是vue接管的区域 */
        data: {/* 定义vue对象 */
           message:"hello vue"
        }
    })

③编写视图

 <!-- ③定义视图 -->
    <div id="app">
        <!-- //通过指令v-model与数据模型massage绑定 -->
        <input type="text" v-model="message">
        {{message}}
        <!-- 在界面直接将数据模型message展示出来 -->
    </div>

总体代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <!-- ①引入vue.js -->
    <script src="../JS/vue.js"></script>
</head>
<body>

    <!-- ③定义视图 -->
    <div id="app">
        <!-- //通过指令v-model与数据模型massage绑定 -->
        <input type="text" v-model="message">
        {{message}}
        <!-- 在界面直接将数据模型message展示出来 -->
    </div>

</body>
<script>
    /*②定义Vue对象  */
    new Vue({
        el:"#app" ,/* 这是vue接管的区域 */
        data: {/* 定义vue对象 */
           message:"hello vue"
        }
    })
</script>
</html>

最终效果:通过修改输入框的数据,也能修改框外的数据。
在这里插入图片描述
插值表达式
形式:{{表达式}}。内容可以是:变量,三元运算符、函数调用、算术运算。

四、Vue常用指令

指令:HTML标签上带有v-前缀的特殊属性,不同指令具有不同属性。
在这里插入图片描述

(一)v-bind

为HTML标签绑定属性值,如设置href,css样式等。一旦通过v-bind或者v-model绑定了一个数据,那这个数据必须在模型中定义。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../JS/vue.js"></script>
</head>
<body>
    <div id="app">
        <a v-bind:href="url">链接1</a>
        <a :href="url">这链接2</a>
    </div>
</body>
<script>
    new Vue({
        el:"#app",
        data:{
           url:"https://www.baidu.com"
        }
    })
</script>
</html>

(二)v-model

在表单元素上创建双向数据绑定。
在这里可以通过输入框改变链接的值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../JS/vue.js"></script>
</head>
<body>
    <div id="app">
        <a v-bind:href="url">链接1</a>
        <a :href="url">这链接2</a>

        <input type="text" v-model="url">
    </div>
</body>
<script>
    new Vue({
        el:"#app",
        data:{
           url:"https://www.baidu.com"
        }
    })
</script>
</html>

(三)v-on

为HTML标签绑定事件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../JS/vue.js"></script>
</head>
<body>
    <div id="app">
        <input type="button" value="按钮" v-on:click="handle()">
        <input type="button" value="按钮" @click="handle()">
    </div>
    
</body>

<script>
    new Vue({
        el:"#app",
        data:{
            //这里面写变量

        },
        methods:{
            //这里面写方法
            handle:function(){
                alert("我被点击了...");
            }

        },
    })
</script>
</html>

(四)v-if和v-show

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../JS/vue.js"></script>
</head>
<body>
    <div id="app">
        年龄:<input type="text" v-model="age">
        <span v-if="age <= 35">年轻人(35岁以下)</span>
        <span v-else-if="age > 35 && age <=50">中年人(35-60)</span>
        <span v-else>老年人(60岁以上)</span>
    </div>
    
</body>
<script>
    new Vue({
        el:"#app",
        data:{
            age:49
        },
        methods: {
            
        },
    })
</script>
</html>

对比:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../JS/vue.js"></script>
</head>
<body>
    <div id="app">
        年龄:<input type="text" v-model="age">
        <span v-if="age <= 35">年轻人(35岁以下)</span>
        <span v-else-if="age > 35 && age <=50">中年人(35-60)</span>
        <span v-else>老年人(60岁以上)</span>


        <br><br>

        年龄:<input type="text" v-model="age">
        <span v-show="age <= 35">年轻人(35岁以下)</span>
        <span v-show="age > 35 && age <=50">中年人(35-60)</span>
        <span v-show="age>60">老年人(60岁以上)</span>
    </div>
    
</body>
<script>
    new Vue({
        el:"#app",
        data:{
            age:49
        },
        methods: {
            
        },
    })
</script>
</html>

在这里插入图片描述

(五)v-for

列表渲染,遍历容器的元素或者对象的属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../JS/vue.js"></script>
</head>
<body>
    <div id="app">
        <div v-for="(adders, index) in adders" >{{adders}}</div>
        <hr>
        <div v-for="(adders, index) in adders" >{{index}}</div>
        <hr>
        <div v-for="(adders, index) in adders" >{{index}}:{{adders}}</div>
        <hr>
        <div v-for="(adders, index) in adders" >{{index+1}}:{{adders}}</div>
    </div>
    
</body>
<script>
    new Vue({
        el:"#app",
        data:{
            adders:["北京","上海","西安","成都","深圳"]
        },
        methods: {
            
        },
    })
</script>
</html>

结果:
在这里插入图片描述

五、生命周期

一个对象从创建到销毁的整个过程,只需要管mounted
在这里插入图片描述

<script>
    new Vue({
        el:"#app",
        data:{
        },
        mounted() {
            console.log("Vue挂载完成,发送请求获取数据");
        },
        methods: {
            
        },
    })
</script>

六、案例实践

通过Vue完成表格数据的渲染展示
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../JS/vue.js"></script>
</head>
<body>
    <div id="app">
        <table border="1" cellspacing="0" width="60%">
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
                <th>成绩</th>
                <th>等级</th>
            </tr>
            <tr align="center" v-for="(users, index) in users" :key="index">
                <td>{{index + 1}}</td>
                <td>{{users.name}}</td>
                <td>{{users.age}}</td>
                <td>
                    <span v-if="users.gender==1"></span>
                    <span v-else></span>
                </td>
                <td>{{users.score}}</td>
                <td>
                    <span v-if="users.score >=80">优秀</span>
                    <span v-else-if="users.score <80 && users.score >=60">合格</span>
                    <span style="color: red;" v-else>不及格</span>
                </td>
            </tr>
        </table>
    </div>
    
</body>
<script>
    new Vue({
        el:"#app",
        data:{
            /* 1:男2:女,>85优秀,>60及格,否则不及格 */
            users:[{
                name:"Tom",
                age:20,
                gender:1,
                score:78
            },{
                name:"Rose",
                age:18,
                gender:2,
                score: 86
            },{
                name:"Jerry",
                age:26,
                gender:1,
                score: 90
            },{
                name:"Tony",
                age:30,
                gender:1,
                score: 52
            },]
        },
        methods: {
            
        },
    })
</script>
</html>

结果:
在这里插入图片描述

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

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

相关文章

C#初级——字典Dictionary

字典 字典是C#中的一种集合&#xff0c;它存储键值对&#xff0c;并且每个键与一个值相关联。 创建字典 Dictionary<键的类型, 值的类型> 字典名字 new Dictionary<键的类型, 值的类型>(); Dictionary<int, string> dicStudent new Dictionary<int, str…

深度学习-----------数值稳定性

目录 神经网络的梯度数值稳定性的常见两个问题例子&#xff1a;MLP 梯度爆炸梯度爆炸的问题 梯度消失梯度消失的问题 总结模型初始化和激活函数让训练更加稳定让每层的方差是一个常数 权重初始化正向均值和方差正向均值正向方差 反向均值和方差Xavier初始正向和反向的均值和方差…

HTTP:从基础概念到协议机制,详解请求响应与状态保持

文章目录 一、HTTP概述1、HTTP的理解2、HTTP是无状态的协议 二、HTTP协议的过程1、URL&#xff08;统一资源定位符&#xff09;2、客户端3、服务器端 三、HTTP请求与响应1、HTTP请求和响应2、HTTP请求方法3、状态码 四、HTTP报文1、请求报文首部2、响应报文首部3、首部字段 五、…

全网唯一!R语言顶刊配色包TheBestColors

与Matlab相比&#xff0c;R语言在绘图方面有着天然的优势。 比如在配色方面&#xff0c;R语言有各式各样现成的包&#xff0c;按理说配色这种事应该很方便才对。 但实际体验下来&#xff0c;发现似乎不是那么回事。 首先&#xff0c;你很难记住每个包的调用方法以及每种配色…

【autodl】stable-diffusion-3-medium快速部署

sd3m是一个文生图模型&#xff0c;支持英文提示词&#xff0c; 支持自然语言 stable diffusion 3 medium 是一个开源模型&#xff0c;本教程是在autodl上部署modelscope上的sd3模型。下面是运行的webui页面图 配置 充值autodl &#xff0c;并且创建一个服务器&#xff1a;我的…

7.C基础_数组

一维数组 1、数组定义 形式&#xff1a;<数据类型> <数组名>[元素数量]&#xff0c;如&#xff1a;int a[3]; 数组的元素&#xff1a;组成数组的各个变量 注意&#xff1a; 数组中各元素的数据类型要求相同元素数量必须为整数&#xff0c;数组一旦创建&#x…

图片管理组建

父 <template><div style"height: 100%;"><!-- 加载中 --><div class"demo-spin-cols" :style"loading"><Icon type"ios-loading" size18 class"demo-spin-icon-load"></Icon><div…

【Kubernetes】Deployment 的状态

Deployment 的状态 Deployment 控制器在整个生命周期中存在 3 3 3 种状态&#xff1a; 已完成&#xff08;Complete&#xff09;进行中&#xff08;Progressing&#xff09;失败&#xff08;Failed&#xff09; 通过观察 Deployment 的当前特征&#xff0c;可以判断 Deploym…

『 Linux 』线程安全的单例模式,自旋锁与读写锁

文章目录 单例模式懒汉模式与饿汉模式 自旋锁读写锁 单例模式 单例模式是一种创建型设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点来访问该实例; 这在需要严格控制如何及合适访问某个唯一资源型下有一定作用; 单利模式的主要特点为如下: 私有构造函数 单…

使用Dockerfile构建一个包含NVIDIA的PyTorch和Detectron2的镜像

查看Dockerfile 以下是详细的解释&#xff1a; # 使用更具体的标记来固定基础镜像版本&#xff0c;确保环境一致性 FROM nvcr.io/nvidia/pytorch:23.01-py3# 设置工作目录和环境变量 WORKDIR /root ENV DETECTRON2_PATH /root/detectron2# 复制并安装 Detectron2 COPY detect…

YOLOv10模型训练、验证、推理

前言 yolov10关于模型的各种参数其实都写到了一起&#xff08;包括训练、验证和推理的参数&#xff09;&#xff0c;在./ultralytics/cfg/default.yaml中&#xff0c;通过使用这些指令我们可以实现各种所需的操作。 代码地址&#xff1a;https://github.com/THU-MIG/yolov10 …

【Material-UI 组件】Autocomplete 中的 Grouped 功能详解

文章目录 一、组件概述1.1 Grouped 功能介绍1.2 适用场景 二、基础用法2.1 实现 Grouped 功能代码拆解 三、高级配置3.1 自定义组渲染3.2 常见配置 四、最佳实践4.1 数据排序4.2 组标题优化4.3 性能优化4.4 可访问性 五、总结 Grouped 功能使得 Autocomplete 组件能够按特定维度…

Linux系统驱动(三)ioctl函数

文章目录 一、ioctl函数&#xff08;一&#xff09;函数格式&#xff08;二&#xff09;ioctl命令码的组成1. 命令码的组成2. 自己封装命令码2. 内核提供了封装命令码的宏 &#xff08;三&#xff09;使用示例1. 驱动2. 应用 一、ioctl函数 Linux内核开发者想要将数据的读写和…

c++ 21 指针

*像一把钥匙 通过钥匙去找内存空间 间接修改内存空间的值 不停的给指针赋值 等于不停的更改指针的指向 指针也是一种数据类型 指针做函数参数怎么看都不可以 指针也是一个数据类型 是指它指向空间的数据类习惯 作业 野指针 向null空间地址copy数据 不断改变指针指向 …

JVM的组成 -- 字节码文件

类加载器(ClassLoader)&#xff1a;将字节码文件加载到内存中运行时数据区(JVM管理的内存)&#xff1a;负责管理JVM使用的内存&#xff0c;比如创建对象和销毁对象执行引擎&#xff1a;即时编译器、解释器、垃圾回收器。负责本地接口的调用本地接口&#xff1a;native方法&…

高等数学 第八讲 积分学计算_不定积分_定积分_反常积分的计算

高等数学 第八讲 积分学计算 文章目录 高等数学 第八讲 积分学计算1.不定积分的计算1.1 基本积分公式1.2 不定积分的计算方法1.2.1 凑微分法1.2.2 换元法1.2.3 分布积分法1.2.4 有理函数的积分计算(待更新)1.2.5 不定积分的一些计算结论总结 2.定积分的计算2.1 牛顿莱布尼茨公式…

大数据Flink(一百零八):阿里云与开源的功能优势对比

文章目录 阿里云与开源的功能优势对比 阿里云与开源的功能优势对比 下面通过表格介绍阿里云实时计算Flink全托管产品的功能点和价值&#xff0c;以及和开源Flink的对比优势。 类型 功能 描述 价值 性能与成本 资源利用率提升 可以根据业务负载进行弹性扩缩容。 更好的…

手摸手教你前端和后端是如何实现导出 Excel 的?

前言 大家好呀&#xff0c;我是雪荷。在上篇文章&#xff08;EasyExcel 初使用—— Java 实现多种写入 Excel 功能-CSDN博客&#xff09;中给大家介绍了 Java 是如何写入 Excel 的&#xff0c;那么这篇算是对上篇文章的拓展&#xff0c;主要介绍前端和后端分别是如何导出数据至…

一篇了解: MyBatis-Plus 操作数据库的使用

目录 一、MyBatis-Plus介绍 二、基础使用 2.1 准备工作 2.2 编码 2.3 CRUD单元测试 三、MyBatis-Plus复杂操作 3.1 打印日志 3.2 常见注解 3.2.1 TableName 3.2.2 TableField 3.2.3 TableId 3.3 条件构造器 3.3.1 QueryWrapper 3.3.2 UpdateWrapper 3.3.3 Lamb…

网络空间安全专业怎么样,可通过哪些途径自学?

网络空间安全主要研究网络空间的组成、形态、安全、管理等&#xff0c;进行网络空间相关的软硬件开发、系统设计与分析、网络空间安全规划管理等。例如&#xff0c;网络犯罪的预防&#xff0c;国家网络安全的维护&#xff0c;杀毒软件等安全产品的研发&#xff0c;网络世界的监…