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.backgroundColor
        document.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:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp中uni-data-select下拉框组件如何去除边框?

在目录中找到文件夹。 找到下拉框组件文件夹 注释该文件夹以下代码就能实现下拉框不带边框。

前端对接 —— 周末

1.点击校验 点击校验 宇哥 记得过滤 不能校验的数据&#xff08;我后端还要检验吗&#xff1f;&#xff09; 2.前端数据对接 这个可以吗&#xff1f; 这种的可以吗&#xff1f;

uniapp实现地图电子围栏功能

该功能使用uniapp中内置组件map实现 效果图预览&#xff1a; 实现过程&#xff1a; 1.文档&#xff1a; 2.代码&#xff1a; <template><view><map :style"width: 100%; height:screenHeight" :latitude"latitude" :longitude"longit…

免费在线markdown语法编辑器

本地用习惯了Typora&#xff0c;但是上传的图片保存在本地&#xff0c;其他电脑想查看必须连本地的图片也拷贝过去。虽然Typora可以用PicGo保存远程的图片&#xff0c;但电脑离线之后看不到图片&#xff0c;不能接受。所以想找一款在线版的编辑器&#xff0c;方便记笔记。 我之…

二叉树前,中序推后续_中,后续推前序

文章目录 介绍思路例子 介绍 二叉树是由根、左子树、右子树三部分组成。 二叉树的遍历方式又可以分为前序遍历&#xff0c;中序遍历&#xff0c;后序遍历。 前序遍历&#xff1a;根&#xff0c;左子树&#xff0c;右子树 中序遍历&#xff1a;左子树&#xff0c;根&#xff0…

【JVM】4.运行时数据区(程序计数器、虚拟机栈)

文章目录 4.JVM的运行时数据区4.1 程序计数器4.2 Java虚拟机栈4.3 虚拟机栈内存溢出 4.JVM的运行时数据区 4.1 程序计数器 程序计数器&#xff08;PC&#xff09;会记录着下一行字节码指令的地址。执行完当前指令后&#xff0c;PC刷新&#xff0c;JVM的执行引擎根据程序计数器…

饥荒Mod 开发(十一):修改物品堆叠

饥荒Mod 开发(十)&#xff1a;制作一把AOE武器 饥荒Mod 开发(十二)&#xff1a;一键制作 饥荒中物品栏有限&#xff0c;要拾取的物品有很多&#xff0c;经常装不下要忍痛丢掉各种东西&#xff0c;即使可以将物品放在仓库但是使用不方便&#xff0c;所以可以将物品的堆叠个数设…

GitHub入门介绍:从小白到大佬的旅程

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

【MySQL】MySQL表的操作-创建查看删除和修改

文章目录 1.创建表2.查看表结构3.修改表4.删除表 1.创建表 语法&#xff1a; CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明&#xff1a; field 表示列名datatype 表示列的类型…

第7章 排序

前言 在这一章&#xff0c;我们讨论数组元素的排序问题。为简单起见&#xff0c;假设在我们的例子中数组只包含整数&#xff0c;虽然更复杂的结构显然也是可能的。对于本章的大部分内容&#xff0c;我们还假设整个排序工作能够在主存中完成&#xff0c;因此&#xff0c;元素的个…

【TB作品】51单片机,语音出租车计价器

西交大题目 1.语音出租车计价器 一、功能要求: 1.具有可模拟出租车车轮转速传感器的硬件设计,可计量出租车所走的公 里数。 2.显示和语音播报里程、价格和等待红灯或堵车的计时价格: 3.具有等待计时功能 4.具有实时年月日显示和切换功能。 5.操作简单、界面友好。 二、设计建议…

机器学习算法---异常检测

类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统计学检验箱…

计算机网络:自顶向下第八版学习指南笔记和课后实验--运输层

记录一些学习计算机网络:自顶向下的学习笔记和心得 Github地址&#xff0c;欢迎star ⭐️⭐️⭐️⭐️⭐️ 运输层 TCP&#xff1a; 传输控制协议 报文段 UDP&#xff1a; 用户数据包协议 数据报 将主机间交付扩展到进程间交付被称为运输层的多路复用与多路分解 将运输层…

饥荒Mod 开发(十三):木牌传送

饥荒Mod 开发(十二)&#xff1a;一键制作 饥荒Mod 开发(十四)&#xff1a;制作屏幕弹窗 一键传送源码 饥荒的地图很大&#xff0c;跑地图太耗费时间和饥饿值&#xff0c;如果大部分时间都在跑图真的是很无聊&#xff0c;所以需要有一个能够传送的功能&#xff0c;不仅可以快速…

docker文档转译1

写在最前面 本文主要是转译docker官方文档。主题是Docker overview&#xff0c;这里是链接 Docker概述 Docker是一个用于开发、发布和运行应用程序的开放平台。Docker使你能够将应用程序与基础设施分离&#xff0c;从而可以快速交付软件。你可以使用相同的方法像管理应用程序…

HarmonyOS4.0从零开始的开发教程18HarmonyOS应用/元服务上架

HarmonyOS&#xff08;十六&#xff09;HarmonyOS应用/元服务上架 简介 随着生活节奏的加快&#xff0c;我们有时会忘记一些重要的事情或日子&#xff0c;所以提醒功能必不可少。应用可能需要在指定的时刻&#xff0c;向用户发送一些业务提醒通知。例如购物类应用&#xff0c…

急速上手搭建单节点 k8s集群实战

Minikube搭建 是一种轻量化的Kubernetes集群&#xff0c;是k8s社区为了帮助开发者和学习者能够更好学习和体验k8s功能而推出的&#xff0c;使用个人PC的虚拟化环境就快速构建启动单节点k8s机器准备&#xff1a;阿里云 CentOS 7.x &#xff0c;2核4g 安装 安装Docker # 1.先…

Eclipse 自动生成注解,如果是IDEA可以参考编译器自带模版进行修改

IDEA添加自动注解 左上角选择 File -> Settings -> Editor -> File and Code Templates&#xff1b; 1、添加class文件自动注解&#xff1a; ​/*** <b>Function: </b> todo* program: ${NAME}* Package: ${PACKAGE_NAME}* author: Jerry* date: ${YEA…

liunx之Samba服务器

环境&#xff1a;虚拟机CENTOS 7和 测试机相通 一、Samba服务器_光盘共享&#xff08;匿名访问&#xff09; 1.在虚拟机CENTOS 7安装smb服务&#xff0c;并在防火墙上允许samba流量通过 2. 挂载光盘 3.修改smb.conf配置文件&#xff0c;实现光盘匿名共享 4. 启动smb服务 5.在…

电子电器架构( E/E) 演化 —— 大算力

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…