Vue:基础语法

2023-05-16

文章目录

    • v-bind
    • v-if,v-else
    • v-else-if
    • v-for
    • v-on
      • v-on:click
      • v-on:keydown
      • v-on:mouseover
    • v-text与v-html
    • v-model


v-bind

我们已经成功创建了第一个 Vue 应用!看起来这跟渲染一个字符串模板非常类似,但是 Vue 在背后做了大量工作。现在数据和 DOM 已经被建立了关联,所有东西都是响应式的。我们在控制台操作对象属性,界面可以实时更新!

我们还可以使用v-bind来绑定元素特性!

代码:

<!DOCTYPE html>
<html xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
</head>
<body>

<div id="app">
  <span v-bind:title="message">
    鼠标悬停几秒钟查看此处动态绑定的提示信息!
  </span>
</div>

<script type="text/javascript">
    var app = new Vue({
        el: '#app',
        data: {
            message: '页面加载于 ' + new Date().toLocaleString()
        }
    })
</script>
</body>
</html>

你看到的 v-bind 等被称为指令。指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性。可能你已经猜到了,它们会在渲染的 DOM 上应用特殊的响应式行为。在这里,该指令的意思是:“将这个元素节点的 title 特性和 Vue 实例的 message 属性保持一致”。

如果你再次打开浏览器的 JavaScript 控制台,输入 app.message = ‘新消息’,就会再一次看到这个绑定了 title 特性的 HTML 已经进行了更新。

v-if,v-else

什么是条件判断语句,就不需要我说明了吧( ̄▽ ̄),以下两个属性!

  • v-if
  • v-else

代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
</head>
<body>

<div id="vue">
    <h1 v-if="ok">YES</h1>
    <h1 v-else>NO</h1>
</div>

<script type="text/javascript">
    var vm = new Vue({
        el: '#vue',
        data: {
            ok: true
        }
    });
</script>
</body>
</html>

测试:

  • 在浏览器上运行,打开控制台!
  • 在控制台输入 vm.ok = false ,然后 回车,你会发现浏览器中显示的内容会直接变成 NO

注:使用 v-* 属性绑定数据是不需要 双花括号 包裹的

v-else-if

  • v-if
  • v-else-if
  • v-else

注:=== 三个等号在 JS 中表示绝对等于(就是数据与类型都要相等)

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <h1 v-if="type==='A'">A</h1>
    <h1 v-else-if="type==='B'">B</h1>
    <h1 v-else-if="type==='D'">D</h1>
    <h1 v-else>C</h1>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>

<script>
    var vm = new Vue({
        el: "#app",
        data: {
            type: 'A'
        }
    });

</script>
</body>
</html>

测试:

  • 在浏览器上运行,打开控制台!
  • 在控制台输入 vm.type = B ,然后 回车,你会发现浏览器中显示的内容会直接变成 B

注:使用 v- 属性绑定数据是不需要 双花括号 包裹的*

v-for

v-for格式说明:

<div id="vue">
    <li v-for="item in items">
        {{ item.message }}
    </li>
</div>

注:items 是数组,item是数组元素迭代的别名。我们之后学习的Thymeleaf模板引擎的语法和这个十分的相似!

代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
</head>
<body>

<div id="vue">
    <li v-for="item in items">
        {{ item.message }}
    </li>
</div>

<script type="text/javascript">
    var vm = new Vue({
        el: '#vue',
        data: {
            //items数组
            items: [
                {message: '你好vue'},
                {message: '前段好学吗'}
            ]
        }
    });
</script>
</body>
</html>

测试 :在控制台输入 vm.items.push({message: ‘来说具体内容’}) ,尝试追加一条数据,你会发现浏览器中显示的内容会增加一条 来说具体内容。

v-on

v-on 监听事件

v-on:click

事件有Vue的事件、和前端页面本身的一些事件!我们这里的click是vue的事件,可以绑定到Vue中的methods中的方法事件!

代码:

<!DOCTYPE html>
<html xmlns:v-on="">
<head>
    <meta charset="UTF-8">
    <title>事件处理 v-on示例1</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
</head>
<body>

<div id="app">
    <!--在这里我们使用了 v-on 绑定了 click 事件,并指定了名为 sayHi 的方法-->
    <button v-on:click="sayHi">点我</button>
</div>


<script type="text/javascript">
    var vm = new Vue({
        el: '#app',//表示当前vue对象接管了div区域
        data: {
            message: 'Hello World'
        },
        // 方法必须定义在 Vue 实例的 methods 对象中
        methods: {
            sayHi: function (event) {
                // `this` 在方法里指向当前 Vue 实例
                alert(this.message);
            }
        }
    });
</script>
</body>
</html>

v-on:keydown

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>事件处理 v-on示例2</title>
</head>
<body>
<div id="app">
    <input type="text"v-on:keydown="fun2('good',$event)">
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>

<script>
    var vm = new Vue({
        el:'#app', //表示当前vue对象接管了div区域
        methods:{
            fun2:function(msg,event){
                if(!
                    ((event.keyCode>=48&&event.keyCode<=57)||event.keyCode==8||event.keyCode==46)){
                    event.preventDefault();
                }
            }
        }
    });
</script>
</body>
</html>

v-on:mouseover

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>事件处理 v-on示例3</title>
</head>
<body>
<div id="app">
    <div v-on:mouseover="fun1" id="div">
		<textarea v-on:mouseover="fun2($event)">这是一个文件域	</textarea>
	</div>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>

<script>
    var vm = new Vue({
		el:'#app', //表示当前vue对象接管了div区域
		methods:{
			fun1:function(){
				alert("div");
			},
			fun2:function(event){
				alert("textarea");
				event.stopPropagation();//阻止冒泡
			}
		}
	});
</script>
</body>
</html>

v-text与v-html

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <div v-text="message"></div>
    <div v-html="message"></div>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>

<script>
    var vm = new Vue({
        el:'#app', //表示当前vue对象接管了div区域
        data:{
            message:"<h1>来嘛,快活呀</h1>"
        }
    });
</script>
</body>
</html>

v-model

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    姓名:<input type="text" id="username" v-model="user.username"><br>
    密码:<input type="password" id="password" v-model="user.password"><br>
    <input type="button" @click="fun" value="获取">
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>

<script>
    var vm = new Vue({
        el:'#app', //表示当前vue对象接管了div区域
        data:{
            user:{username:"",password:""}
        },
        methods:{
            fun:function(){
                alert(this.user.username+" "+this.user.password);
                this.user.username="tom";
                this.user.password="11111111";
            }
        }
    });
</script>
</body>
</html>

如果还有需要学习的可以查看vue官网。


如果有收获!!! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue:基础语法 的相关文章

  • MySQL(3)DML详解

    一 DML 数据操纵语言 xff08 DML xff09 DML 用于插入 修改 删除数据记录 xff0c 包括如下 SQL 语句 xff1a INSERT xff1a 添加数据到数据库中 UPDATE xff1a 修改数据库中的数据 DE
  • 泛型的使用与通配符

    文章目录 泛型的使用1 jdk1 5新特性泛型2 为什么要使用泛型 xff1f 3 在集合中使用泛型 自定义泛型结构 xff1a 泛型类 xff0c 泛型接口 xff1b 泛型方法泛型类被某个类继承自定义泛型的注意点泛型方法 泛型在继承方面
  • IO流详解

    文章目录 File类1 File类的使用2 如何创建File类的实例3 常用方法 IO流1 概述2 节点流 字符流FileReader读入数据的操作FileWriter写出数据的操作使用FileReader和FileWriter实现文本文件
  • TCP的三次握手和四次挥手详解

    1 三次握手 三次握手 xff08 Three way Handshake xff09 其实就是指建立一个TCP连接时 xff0c 需要客户端和服务器总共发送3个包 进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常 指定自
  • 多线程 / 高并发 高频考点

    1 stop 和 suspend 方法为何不推荐使用 xff1f 反对使用stop xff0c 是因为它不安全 它会解除由线程获取的所有锁定 xff0c 而且如果对象处于一种不连贯状态 xff0c 那么其他线程能在那种状态下检查和修改它们
  • Synchronized、Lock、ReentrantLock详解

    一 synchronized的缺陷 synchronized是java中的一个关键字 xff0c 也就是说是java语言内置的特性 那么为什么会出现Lock呢 xff1f 如果一个代码块被synchronized修饰了 xff0c 当一个线
  • HashMap在JDK1.7和1.8中的实现

    一 初窥HashMap HashMap是应用更广泛的哈希表实现 xff0c 而且大部分情况下 xff0c 都能在常数时间性能的情况下进行put和get操作 要掌握HashMap xff0c 主要从如下几点来把握 xff1a jdk1 7中底
  • JDK8新特性(Lambda、Stream、Optional)

    文章目录 1 为什么使用Lambda表达式 xff1f 2 Lambda表达式的使用3 函数式 xff08 functional xff09 接口4 方法引用与构造器引用方法引用的使用构造器引用的使用 5 Stream APIStream
  • Java JUC

    Java JUC 1 Java JUC简介 在 Java 5 0 提供了 java util concurrent xff08 简称 JUC xff09 包 xff0c 在此包中增加了在并发编程中很常用的实用工具类 xff0c 用于定义类似
  • mybatis 概述 | 配置文件详解

    一 xff0c Mybatis入门和自定义Mybatis 1 框架概述 1 xff09 什么是框架 它是我们软件开发中的一套解决方案 xff0c 不同的框架解决的是不同的问题 使用框架的好处 xff1a 框架封装了很多的细节 xff0c 使
  • PyTorch:torch.zeros_like()的用法

    作用 xff1a 产生一个与a相同shape的Tensor 举例 xff1a import torch a 61 torch rand 3 4 产生一个3行4列的0 1的随机Tensor b 61 torch zeros like a 产生
  • mybatis 事务 | 动态SQL | 多表查询

    四 xff0c Mybatis连接池和事务深入 1 连接池 在 WEB 课程中学习过连接池技术 xff0c 而在 Mybatis 中也有连接池技术 xff0c 但是它采用的是自己的连接池技术 在 Mybatis 的主配置文件中 xff0c
  • mybatis延迟加载 | 缓存机制详解

    八 xff0c Mybatis延迟加载 1 概念 延迟加载 xff1a 就是在需要用到数据时才进行加载 xff0c 不需要用到数据时就不加载数据 延迟加载也称懒加载 好处 xff1a 先从单表查询 xff0c 需要时再从关联表去关联查询 x
  • mybatis 注解开发版

    十 xff0c myBatis纯注解开发 1 常用注解 64 Insert 实现新增 64 Update 实现更新 64 Delete 实现删除 64 Select 实现查询 64 Result 实现结果集封装 64 Results 可以与
  • Mybatis 逆向工程的使用

    文章目录 1 逆向工程简介2 逆向工程的配置1 xff09 创建数据库2 xff09 添加pom文件坐标3 xff09 编写generatorConfig xml配置4 xff09 生成对应代码 3 逆向工程的使用1 xff09 基本查询的
  • pageHelper分页技术

    十二 xff0c pageHelper分页技术 1 分页简介 PageHelper 是 MyBatis 中非常方便的第三方分页插件 2 官方文档 xff1a https github com pagehelper Mybatis PageH
  • IDEA中无法连接mysql数据库

    问题 我们在学习Mybatis时需要连接Mysql数据库 xff0c 使用IDEA无法连接mysql数据库 原因 我们IDEA中没有对应的MySQL的驱动jar xff0c 导致无法连接上数据库 解决方法如下 xff1a 解决 第一步 xf
  • Typora的使用 和 自定义属性 | 快捷键

    1 Typora介绍 xff1a Markdown是一种轻量级标记语言 通过简单的标记语法 xff0c 它可以使普通文本内容具有一定的格式 所谓轻量级标记语言指的是一类用简单句法描述简单格式的文本语言 通俗来讲就是我们可以通过很简单的几行代
  • Lombok的使用及其原理

    Lombok简介说明 xff1a Lombok是一款Java开发插件 使得Java开发者 可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码 尤其对于简单的Java模型对象 POJO 在开发环境中使用Lombok插件后 xff0c J
  • IOC理论推导

    IOC理论推导 1 UserDao 接口 2 UserDaoImpl 实现类 3 UserService业务接口 4 UserServiceImpl业务实现类 在我们之前的业务中 xff0c 用户的需求可能会影响我们原本的代码 xff0c

随机推荐

  • IDEA报: Lombok Requires Annotation Processing

    1 问题描述 IDEA使用lombok 提示 Lombok Requires Annotation Processing Annotation processing seems to be disabled for the project
  • PyTorch:torch.Tensor.unsqueeze()、squeeze()

    目录 1 unsqueeze 2 squeeze 1 unsqueeze 作用 xff1a 给指定的tensor增加一个指定 之前不存在的 的维度 通常用在两tensor相加 xff0c 但不满足shape一致 xff0c 同时又不符合广播
  • IDEA Error during artifact deployment. See server log for details.

    1 问题所在 Artifact ssmbuild war exploded Error during artifact deployment See server log for details 遇到这样的问题 xff0c 可能就是依赖没有
  • org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned

    1 报错 org apache ibatis exceptions TooManyResultsException Expected one result or null to be returned by selectOne 2 原因 在
  • springmvc入门案例 | 流程图分析

    一 xff0c springmvc基本概念 1 三层架构 开发架构一般基于两种形式 xff0c 一种是c s架构 xff0c 也就是客户端服务器 xff0c 另一种是b s架构 xff0c 也就是浏览器服务器 javaee的开发基本都是b
  • JSON的使用 | Jackson | FastJson

    JSON 什么是JSON JSON xff08 JavaScript Object Notation NS对象标记 xff09 是一种轻量级的数据交换格式 xff0c 目前使用特别广泛 采用完全独立于编程语言的文本格式来存储和表示数据 简洁
  • springmvc注解 | JSON | Restful | 结果视图

    一 常用注解 1 64 RequestParam 作用 xff1a 可以把请求参数传递给请求方法 属性 xff1a value xff1a 请求参数中的名称 required xff1a 请求参数中是否必须提供此参数 默认值 xff1a t
  • springmvc文件上传与下载 | 拦截器 | 异常处理 | 国际化

    一 springmvc的文件上传和下载 1 准备工作 文件上传是项目开发中最常见的功能之一 xff0c springMVC 可以很好的支持文件上传 xff0c 但是SpringMVC上下文中默认没有装配 MultipartResolver
  • JavaScript:操作 BOM 和 DOM

    浏览器说明 由于JavaScript的出现就是为了能在浏览器中运行 xff0c 所以 xff0c 浏览器自然是JavaScript开发者必须要关注的 目前主流的浏览器分这么几种 xff1a IE 6 11 xff1a 国内用得最多的IE浏览
  • Ajax的使用

    1 简介 AJAX 61 Asynchronous JavaScript and XML xff08 异步的 JavaScript 和 XML xff09 AJAX 是一种在无需重新加载整个网页的情况下 xff0c 能够更新部分网页的技术
  • 设置ItelliJ IDEA里修改jsp不重启tomcat

    设置ItelliJ IDEA里修改jsp不重启tomcat On Upate Action 与 On Frame Deactivation 这两个选项的设置 xff0c 依赖于 项目的部署方式 是war包 还是 exploded xff0c
  • SSM图书管理系统 - Spring+Springmvc+Mybatis(含数据库及分页)

    项目起源 通过一段时间对SSM整合的学习 xff0c 对基本理论以及主要知识点的掌握 xff0c 实现简易图书管理系统 xff0c 当然肯定有很多可以改进的地方 之前没有记录SSM整合的过程 xff0c 这次刚好项目有更深刻的理解 以前解决
  • PyTorch:torch.clamp()用法详解

    函数定义 xff1a torch clamp input min max out 61 None 作用 xff1a 限幅 将input的值限制在 min max 之间 xff0c 并返回结果 out Tensor optional 输出张量
  • SSM酒店预订客房管理系统(包含数据库及项目说明)

    hotel 预订宾馆客房入住管理系统 SSM项目 项目下载 xff1a https download csdn net download weixin 45606067 12673204 功能简介 前台给用户界面展示信息 xff0c 以及查
  • resultMap | ssociation | collection具体说明及演示

    1 resultMap 的基本配置项 属性 id 属性 xff1a resultMap 的唯一标识 xff0c 此 id 值用于 select 元素 resultMap 属性的引用 type 属性 xff1a 表示该 resultMap 的
  • @Autowired注解与@Resource注解的区别

    Spring不但支持自己定义的 64 Autowired注解 xff0c 还支持由JSR 250规范定义的几个注解 如 xff1a 64 Resource 64 PostConstruct及 64 PreDestroy 64 Resourc
  • 轻松聊 Maven 的全面学习

    一 Maven介绍 1 什么是maven Maven 是一个项目管理工具 xff0c 它包含了一个 项目对象模型 POM xff1a Project Object Model xff0c 一组标准集合 xff0c 一个项目生命周期 Proj
  • Vue:前端体系、前后端分离

    1 概述 Vue 读音 vju xff0c 类似于 view 是一套用于构建用户界面的渐进式框架 xff0c 发布于 2014 年 2 月 与其它大型框架不同的是 xff0c Vue 被设计为可以自底向上逐层应用 Vue 的核心库只关注视图
  • Vue:MVVM模式和第一个Vue程序

    什么是 MVVM MVVM xff08 Model View ViewModel xff09 是一种软件架构设计模式 xff0c 由微软 WPF xff08 用于替代 WinForm xff0c 以前就是用这个技术开发桌面应用程序的 xff
  • Vue:基础语法

    文章目录 v bindv if v elsev else ifv forv onv on clickv on keydownv on mouseover v text与v htmlv model v bind 我们已经成功创建了第一个 Vu