vue2入门

vue2官方文档:安装 — Vue.js

1、安装

新建"vue"文件夹——>新建vue1.html

直接用<script>标签引入vue:

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

tips:

CDN:一个网络加速的技术

完整代码如下:

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

此时就已经引入成功了

2、vue的变量渲染

使用双括号(胡子)语法,就实现了文本渲染。

我们在绑值语法里可以写字符串、数字、布尔、表达式。

字符串、数字、布尔示例:

</head>
<body>
<div id="app">{{message}}<div>{{num++}}
<!-- `{{num++}}` 表示使用 `num` 的当前值,然后再将 `num` 值加一;
而 `{{++num}}` 表示先将 `num` 的值加一,然后再使用新的值。 --></div><div>{{bool}}</div><div>{{bool?'a':'b'}}</div>
<!--如果bool为true显示a,false显示b-->
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>var app = new Vue({el:'#app',data:{message:'hello',num:1,bool:true}})</script></body>

显示结果:

数组示例:

1、查询数组里名叫张三的人的年龄

<body>
<div id="app">
<div> {{arr.find(v =>v.name ==='张三')?.age}}</div></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>var app = new Vue({el:'#app',data:{arr:[{name:'张三',age:20}]}})</script></body>

//如果把data中arr的数组里的元素清空,div里面那个语句也不会报错。此时整个值就会变成undefined。

v-html(模版)

有时候我们想渲染一个html

<body>
<div id="app">
<div v-html="htmlStr"></div></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>var app = new Vue({el:'#app',data:{htmlStr:'<stong style="color:red">vue学习</stong>'}})</script></body>

v-model(双向绑定值)

<div id="app">
<div><input type="text" v-model="count"><div>{{count}}</div></div></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>var app = new Vue({el:'#app',data:{
count:0}})</script>

效果:

v-if(判断)

<body>
<div id="app">
<div>
<div v-if="color === '红色'">红色</div><div v-if="color === '蓝色'">蓝色</div><div v-else-if="color === '黑色'>黑色</div> 
<!--这也是判断的语句之一--><div v-else>黑色</div>
</div></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>var app = new Vue({el:'#app',data:{color:'红色'}})</script></body>

结果显示红色

v-bind:动态绑定属性

<body>
<div id="app">
<div>
<a v-bind:href="url">搜索一下</a>
</div></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>var app = new Vue({el:'#app',data:{url:'https://www.baidu.com'}})</script></body>

v-bind简写是<a :href="url">搜索一下</a>

v-on:事件绑定

<body>
<div id="app">
<div style="width:100px;height:100px;background-color: red" v-on:click="clickDiv" id="div"></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script><script>var app = new Vue({el:'#app',data:{},methods:{clickDiv(){console.log('我点击了div')}}})</script></body>

如果你想点击方块让它切换颜色或者更多类似的操作

那么在methods方法里可以这样写:

    methods:{clickDiv(){console.log('我点击了div')//首先获取元素,这样的写法就是js原生的语法let color=document.getElementById('div').style.backgroundColordocument.getElementById('div').style.backgroundColor=color ==='blue'?'red':'blue'}}

例2:

如果你想点击数字就改变颜色的话,你需要再添加一个点击事件。

<div id="app"><div v-html="htmlStr" v-on:click="clickHtml"></div><div style="width:100px;height:100px;background-color: red" v-on:click="clickDiv" id="div"></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>var app = new Vue({el: '#app',data: {htmlStr: '<strong id="htmlId" style="color:red">222</strong>'},methods: {clickHtml(event) {if (event.target.id === 'htmlId') {event.target.style.color = 'gold';}},clickDiv() {console.log('我点击了div');let color = document.getElementById('div').style.backgroundColor;document.getElementById('div').style.backgroundColor = color === 'blue' ? 'red' : 'blue';}}});
</script>

v-on:click的简写:@click="clickDiv"

v-for:循环

假如说我想渲染n个数据,以下是标准语法示例:

<div id="app"><div v-for="(item,index) in fruits" :key="index">{{index+','+item}}</div></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>var app = new Vue({el: '#app',data: {fruits:['苹果','香蕉','梨子'],},});
</script>

如果你想左边显示成

那么index+1即可

<div id="app"><div v-for="(item,index) in fruits" :key="index">{{(index+1)+','+item}}</div></div>

tips:

这个 v-for 循环会遍历 fruits 数组中的每一个元素,并为每个元素生成一个 div 元素。在循环中,item 代表当前遍历到的数组元素,index 则表示当前元素在数组中的索引。

  • item 是每次迭代中当前遍历到的数组元素,比如第一次迭代时是 '苹果',第二次是 '香蕉',以此类推。
  • index 是每个元素在数组中的索引值,从 0 开始。第一次迭代时 index0,第二次是 1,以此类推。

v-for="(item, index) in fruits" 中的 (item, index) 是解构语法,用来从遍历的数组元素中提取当前元素和对应的索引值。

在每个循环中,{{ (index + 1) + ',' + item }} 是在 div 中显示当前循环的索引加一和数组元素。因为索引是从 0 开始,加一是为了显示人类习惯的从 1 开始的索引。

示例2:遍历数组

动态class style

通过变量来绑定样式:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>vue学习</title><style>/* 定义一个 CSS 类名为 active,用于设置文本颜色为红色 */.active {color: red;}</style>
</head>
<body>
<div id="app"><!-- 下拉菜单和菜单项的布局 --><div style="display:flex;margin-top:30px"><!-- 下拉选择框 --><select v-model="currentMenu"><option value="首页">首页</option><option value="教师">教师</option><option value="学生">学生</option></select><!-- 循环渲染菜单项 --><div style="padding:0 10px;"<!-- 动态设置菜单项的字体大小 -->:style="{ fontSize: item === currentMenu ? '20px' : '14px' }"<!-- 根据条件动态添加或移除 active 类 -->:class="{'active': item === currentMenu}"v-for="item in menus" :key="item">{{ item }}</div></div>
</div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
<script>var app = new Vue({el: '#app',data: {// 定义菜单数组menus: ['首页', '教师', '学生'],// 当前选中的菜单项,默认为 "首页"currentMenu: '首页'},});
</script>
</body>
</html>

运行结果:

vue脚手架搭建

Vue CLI官网文档地址:安装 | Vue CLI

在mac上安装Vue CLI:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习项目精选 第一期:超完整数据科学资料合集

大噶吼&#xff0c;不说废话&#xff0c;分享一波我最近看过并觉得非常硬核的资源&#xff0c;包括Python、机器学习、深度学习、大模型等等。 1、超完整数据科学资料合集 地址&#xff1a;https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials Pytho…

女生想通过培训转行软件测试类可行吗?

首先&#xff0c;女生转行IT行业做软件测试是可以的&#xff0c;因为软件测试岗&#xff0c;尤其是其中的功能性测试岗&#xff0c;入行门槛并不高&#xff0c;有很多女生在做&#xff0c;且我个人认为还蛮适合女生的&#xff0c;因为女生相对来说更细心&#xff0c;文档能力也…

Linux:时间显示(函数介绍)

文章目录 1、sleep&#xff1a;延迟函数2、time/localtime3、示例&#xff1a;sleep time localtime4、Linux时间调整 1、sleep&#xff1a;延迟函数 函数原型&#xff1a;unsigned int sleep(unsigned int seconds); 功 能&#xff1a;延时 参 数&#xff1a;seconds:秒&am…

高频面试:Spring 如何解决循环依赖?(荣耀典藏版)

目录 一、 基础知识 1.1 什么是循环依赖 &#xff1f; 1.2 三级缓存 1.3 原理执行流程 二、 源码解读 2.1 代码入口 2.2 第一层 2.3 第二层 2.4 第三层 2.5 返回第二层 2.6 返回第一层 三、 原理深度解读 3.1 什么要有 3 级缓存 &#xff1f; 3.2 能干掉第 2 级缓…

C#结合JavaScript实现多文件上传

目录 需求 引入 关键代码 操作界面 ​JavaScript包程序 服务端 ashx 程序 服务端上传后处理程序 小结 需求 在许多应用场景里&#xff0c;多文件上传是一项比较实用的功能。实际应用中&#xff0c;多文件上传可以考虑如下需求&#xff1a; 1、对上传文件的类型、大小…

Chrome浏览器中访问http会自动跳转https下,导致请求和文件不能正常访问

网上查了很多解决方案&#xff0c;例如清楚缓存等等其他方法&#xff0c;都不能解决该问题 例如&#xff1a; 地址栏输入&#xff1a; chrome://net-internals/#hsts找到底部Delete domain security policies一栏&#xff0c;输入想处理的域名&#xff0c;点击delete。 搞定了…

Git 硬重置之后恢复历史提交版本

****硬重置之前一定要备份分支呀&#xff0c;谨慎使用硬重置&#xff0c;特别是很多人一起使用的分支**** 如果你在reset的时候选择了Hard选项&#xff0c;也就是硬重置 重置完且push过&#xff0c;那么被你本地和远端后面的提交记录肯定就会被抹去。 解决办法&#xff1a; …

Power BI - 5分钟学习增加索引列

每天5分钟&#xff0c;今天介绍Power BI增加索引列。 什么是增加索引列&#xff1f; 增加索引列就是向表中添加一个具有显式位置值的新列&#xff0c;一般从0或者从1开始。 举例&#xff1a; 首先&#xff0c;导入一张【Sales】样例表(Excel数据源导入请参考每天5分钟第一天)…

深入解析HashMap数据结构及其应用

目录 引言 1. HashMap简介 2. 哈希表的基本原理 3. HashMap的内部结构 4. 哈希冲突的处理 5. HashMap的常见操作 6. HashMap的性能优化 7. 实际应用场景 结论 引言 在计算机科学中&#xff0c;数据结构是构建和组织数据的一种方式&#xff0c;而HashMap是其中一种常用…

JavaScript数组分组groupBy

JavaScript 最近发布了一个方法 Object.groupBy&#xff0c;可以对可迭代对象中的元素进行分组。 语法&#xff1a; Object.groupBy(items, callbackFn)items 被分组的可迭代对象&#xff0c;如 Array。 callbackFn 对可迭代对象中的每个元素执行的函数。 举个例子&#…

缓存穿透的原因和解决方案

缓存穿透 缓存穿透产生的原因 用户请求的数据在缓存中和数据库中都不存在&#xff0c;不断发起请求&#xff0c;给数据库带来压力 缓存穿透的解决方案 1&#xff1a;缓存空对象 优点&#xff1a;实现简单&#xff0c;维护方便 缺点&#xff1a; 额外的内存消耗可能造成短…

电路中的屏蔽罩作用及设计

1.1 屏蔽罩作用 1.1.1 屏蔽电子信号,防止外界的干扰或内部向外的辐射&#xff1a; 一般见于通信类电路PCB&#xff0c;主要一个无线通信产品上有的敏感器件、模拟、数字电路、DCDC电源电路&#xff0c;都需屏蔽隔离&#xff0c;是为了不影响其它电路&#xff0c;也有防止其它电…