当前位置: 首页 > news >正文

Vue:基础语法指令

文章目录

  • 一、基础语法指令
    • 1.1、v-bind
    • 1.2、v-if, v-else
    • 1.3 v-else-if
    • 1.4、v-for
    • 1.5、v-on


学习视频来自于:秦疆(遇见狂神说)Bilibili地址
他的自学网站:kuangstudy

唯有热爱,能抵岁月漫长


一、基础语法指令

1.1、v-bind

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

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

上代码

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>

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

<!--1.导入Vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el:"#app",
        /*Model:数据*/
        data:{
            message: '页面加载于 ' + new Date().toLocaleString()
        }
    });
</script>
</body>
</html>

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

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

1.2、v-if, v-else

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

  • v-if
  • v-else

上代码

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--view层,模板-->
<div id="app">
    <h1 v-if="ok">Yes</h1>
    <h1 v-else>No</h1>
   
</div>

<!--1.导入Vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el:"#app",
        /*Model:数据*/
        data:{
            ok: true
        }
    });
</script>
</body>
</html>

测试:

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

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

1.3 v-else-if

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

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

上代码:

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--view层,模板-->
<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>

<!--1.导入Vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el:"#app",
        /*Model:数据*/
        data:{
            type: 'A'
        }
    });
</script>
</body>
</html>

1.4、v-for

  • v-for

格式说明

<div id="app">
    <li v-for="(item,index) in items">
        {{item.message}}---{{index}}
    </li>

</div>

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

上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--view层,模板-->
<div id="app">
    <li v-for="(item,index) in items">
        {{item.message}}---{{index}}
    </li>

</div>

<!--1.导入Vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el:"#app",
        /*Model:数据*/
        data:{
            items:[
                {message:'狂神说Java'},
                {message:'狂神说前端'},
                {message:'狂神说运维'}
            ]
        }
    });
</script>
</body>
</html>

测试:在控制台输入vm.items.push({message:'狂神说运维'}),尝试追加一条数据,你会发现浏览器中显示的内容会增加一条狂神说运维

1.5、v-on

v-on监听事件

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

上代码:

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
	<input v-on:click="sayHi" type="button" value="点击弹出事件"/>
    <button v-on:click="sayHi">点我</button>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el:"#app",
        data:{
            message:'Hello World'
        },
        methods:{
            sayHi:function(){
                //'this'在方法里面指向当前Vue实例
                alert(this.message);
            }
        }
    });
</script>
</body>
</html>

点击测试

Vue还有一些基本的使用方式, 大家有需要的可以再跟着官方文档看看, 因为这些基本的指令几乎我们都见过了,一通百通!掌握学习的方式!

相关文章:

  • CentOS 7 双网卡bond 网卡mac 相同的处理
  • C# 用泛型和反射实现对象管理
  • 剑指offer32-42字符串数组的应用
  • SSM+文达学院贫困生认定系统 毕业设计-附源码261621
  • 单片机上的操作系统
  • Linux-10-线程
  • BP神经网络算法基本原理,bp神经网络算法的优点
  • 模块加载机制(require)--内置、第三方、自定义、文件夹
  • js分组匹配、遍历结果
  • shell脚本学习笔记2
  • STM32-串口通信波特率计算以及寄存器的配置详解
  • 物联网开发笔记(5)- 使用Wokwi仿真树莓派Pico实现LED灯交替闪烁(续)
  • 洛谷 P7302 [NOI1998] 免费的馅饼
  • Docker基础-2.常用命令与Docker镜像
  • Java的Lambda表达式学习笔记:认识lambda表达式
  • 【comparator, comparable】小总结
  • 【EOS】Cleos基础
  • 4. 路由到控制器 - Laravel从零开始教程
  • HTTP--网络协议分层,http历史(二)
  • JavaScript类型识别
  • JavaScript中的对象个人分享
  • java中具有继承关系的类及其对象初始化顺序
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vue--为什么data属性必须是一个函数
  • 创建一个Struts2项目maven 方式
  • 分布式熔断降级平台aegis
  • 全栈开发——Linux
  • 小李飞刀:SQL题目刷起来!
  • 携程小程序初体验
  • 原生JS动态加载JS、CSS文件及代码脚本
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (WSI分类)WSI分类文献小综述 2024
  • (ZT)薛涌:谈贫说富
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (四)汇编语言——简单程序
  • (一)u-boot-nand.bin的下载
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ***检测工具之RKHunter AIDE
  • ./configure,make,make install的作用
  • .form文件_一篇文章学会文件上传
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 分布式技术比较
  • .net6 webapi log4net完整配置使用流程
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .Net中ListT 泛型转成DataTable、DataSet
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • [ C++ ] STL---string类的模拟实现
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [17]JAVAEE-HTTP协议
  • [20170713] 无法访问SQL Server
  • [C++]模板与STL简介