毫无废话,四个小案例手把手教你Vue2基础轻松入门_学习笔记

news2025/2/25 18:01:13

四个小案例手把手教你Vue2基础轻松入门_学习笔记

本文将通过四个小案例介绍Vue2学习
根据 黑马程序员vue前端基础教程-4个小时带你快速入门vue 教程。

因教程中的网络项目和综合项目难度不高,且内容仅为综合使用,本笔记不另介绍。

* 源自教程,但不局限于教程。有笔者自己的想法和思考。希望能对你有所帮助。

本地项目:

vue的导入包:

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

1、计数器案例

这里以一个计数器为例,分别讲解:

  1. 挂载点、函数使用、数据和复杂数据
  2. v-text
  3. v-html
  4. v-on:click、@click
<body>
    <div id="app">
        <!-- 
            事件一般为@click="函数名称"或v-on:click="函数名称"
        -->
        <input type="button" value="+" @click="add">
        <!-- 
            值的引用由两个大括号括起来,如{{变量}}或v-text="变量":
            {{num}}{{}}
         -->
        <span>{{num}}</span>
        <span v-text="num" style="color: red;"></span>
        <input type="button" value="-" @click="sub">
        <!-- 
            v-text原样输出内容
         -->
        <p v-text="tip_text"></p>
        <!-- 
            v-html 输出html解析过的内容
         -->
        <p v-html="tip_text"></p>

    </div>
</body>
<script>
    var App = new Vue({
        // el为寻找dom节点,其值类型可以为id、class、标签名等。写法与css差不多。
        el: "#app",
        // data为数据值,其子值可以为基本数据类型,也可以为数组等复杂类型
        data: {
            num: 1,
            msg: "123",
            sexType: [
                "男",
                "女"
            ],
            tip_text: '<a href="">这是一首简单的小情歌</a>'
        },
        // 函数方法,需要注意写法方式。且使用变量时,需要this
        // 函数名:function(){
        // code
        // };
        methods: {
            add: function() {
                if (this.num < 10) {
                    this.num++;
                } else {
                    alert("不能大于10");
                }
            },
            sub: function() {
                if (this.num > 1) {
                    this.num--;
                } else {
                    alert("不能小于0");
                }
            }
        },
    });
</script>

效果图

在这里插入图片描述

2、图片切换

这里以图片切换为例,分别介绍:

  1. v-show
  2. v-if、v-else
  3. v-bind
<body>
    <div id="app">
        <!-- 
            v-show:是否显示。本质是控制display属性,即标签存在,只是被隐藏。
            v-if:条件判断显示。本质是控制标签属性,即删除标签。
            v-else:同v-if一致,仅仅是当v-if为假时生效
         -->
        <input type="button" value="上一张" @click="last" v-show="index!=0">
        <img :src="imgSrc">
        <!-- 
            v-bind:标签属性。用来获取属性标签,可以胜率v-bind。例如v-bind:herf
            v-bind:scr等同于:src
            对绑定变量的另一种使用方法
         -->
        <img :src="imgList[index]">
        <input type="button" value="下一张" @click="next" v-if="index<imgList.length-1">
        <span v-else>没有下一张啦</span>
    </div>
</body>
<script>
    var App = new Vue({
        el: "#app",
        data: {
            imgSrc: "./img/wechat.jpg",
            index: 0,
            imgList: [
                "./img/wechat.jpg",
                "./img/vpn.jpg",
                "./img/douyin.jpg",
            ]
        },
        methods: {
            last: function() {
                this.index--;
                this.imgSrc = this.imgList[this.index];
            },
            next: function() {
                this.index++;
                this.imgSrc = this.imgList[this.index];
            }
        },
    });
</script>

效果图:

在这里插入图片描述

3、记事本案例

下面以一个记事本(叫搜索引擎下拉框更好)为例,分别讲解:

  1. v-on:keyup
  2. v-model
  3. v-for
  4. 数组添加内容、删除指定索引
  5. 函数传值
<body>

    <div id="app">
        <!-- 
            v-on:keyup:获取用户输入内容到函数。
                v-on:keyup.enter:当用户输入后,按下enter键才通知函数。
                更多键值,请查询文档。
            v-model:对数据和表单内容双向绑定,二者同步变化内容。
         -->
        <input type="text" v-on:keyup.enter="tips" v-model="user_text">
        <ul>
            <!-- 
                v-for:遍历。类似python for循环或java的迭代器写法。
                基础使用:item in Lists
                带索引:(item,index) in Lists
                函数传值:函数名(变量),不需要使用两个大括号引变量。
             -->
            <li v-for="(item,index) in word_list">
                {{index}} {{item}}
                <a href="javascript:void(0)" @click="del(index)">×</a>
            </li>
        </ul>

        <span>当前记录总数:{{word_list.length}}</span>
        <a href="javascript:void(0)" @click="clear">清空</a>
    </div>
</body>
<script>
    var App = new Vue({
        el: "#app",
        data: {
            word_list: [
                "好好学习",
                "天天向上"
            ],
            user_text: ""

        },
        methods: {
            tips: function() {
                // 将user_text的内容添加到列表中
                this.word_list.push(this.user_text);
                this.user_text = "";
            },
            clear: function() {
                // 清空列表
                this.word_list = [];
            },
            del: function(p1) {
                // 删除指定下标的列表
                this.word_list.splice(p1, 1);
            }
        },

    });
</script>

效果图

在这里插入图片描述

4、axios网络库的使用

<body>
    <div id="app">
        <input type="button" value="请求" @click="send_msg">
        <span>{{msg}}</span>
    </div>
</body>
    <!-- 
        引入axios库
    -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
    var vue = new Vue({
        el: "#app",
        data: {
            msg: "等待请求"
        },
        methods: {
            send_msg: function() {
                // 细节处,创建一个变量保存this。若不保存,则无法在下文对变量进行修改。
                var that = this;
                axios.get("http://ajax-api.itheima.net/api/weather?city=%E6%AD%A6%E6%B1%89").then(function(response) {
                    // 此处的this是函数内部的this。
                    that.msg = response.data.message;
                });
            }
        },
    });
</script>

效果图

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【Linux】网络编程之套接字 --TCP

目录&#x1f308;前言&#x1f338;1、TCP相关API&#x1f361;1.1、socket函数&#x1f362;1.2、bind函数&#x1f367;1.3、listen函数&#x1f368;1.4、accept函数&#x1f370;1.5、connect函数&#x1f33a;2、TCP网络编程&#x1f361;2.1、简单TCP通信程序 -- 多进程…

【redis】验证redis是否正常运行以及报错解决方案

Redis 出现 “(error) NOAUTH Authentication required.” 错误&#xff0c;意味着客户端尝试向 Redis 服务器发送命令&#xff0c;但未提供身份验证或提供的身份验证信息不正确。这通常是由于 Redis 实例开启了密码认证机制导致的。 为了解决该问题&#xff0c;可以尝试以下…

代码随想录算法训练营第六天|242 有效的字母异位词 349 两个数组的交集 202 快乐数 1 两数之和

文章目录哈希表242 有效的字母异位词思路代码总结349 两个数组的交集思路代码总结202 快乐数思路代码总结1 两数之和思路代码总结哈希表 哈希碰撞&#xff1a;拉链法&#xff08;链表&#xff09;线性探测法&#xff08;顺序向后&#xff09; std::unordered_map, std::unorde…

LinuxGUI自动化测试框架搭建(四)-Hyper-V上安装Ubuntu操作系统

(四)-Hyper-V上安装Ubuntu操作系统 1 Ubuntu下载1.1 下载地址1.2 下载说明2 Hyper-V上安装Ubuntu2.1 创建虚拟机2.2 安装Ubuntu系统3 设置虚拟你网络4 关闭虚拟机检查点并移除DVD驱动器5 启动虚拟机6 配置Ubuntu网络7 网络测试1 Ubuntu下载 1.1 下载地址 官网地址:https://…

(十五)排序算法-归并排序

1 基本介绍 1.1 概述 归并排序&#xff08;Merge Sort&#xff09;是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组&#xff0c;再合并数组。 将数组分解最小之后&#xff0c;然后合并两个有序数组&#xff0c;基本思路是比较两个数组的最前面的数&…

华为浮动路由和BFD配置

拓扑图 电脑配置 pc1:192.168.10.1/24 pc2:192.168.20.1/24 AR1路由器配置 配置4个接口的地址 ge0/0/0:192.168.10.254/24 ge0/0/1:192.168.20.254/24 ge0/0/2:12.1.1.1/30 ge4/0/0:13.1.1.1/30 <Huawei>system-view Enter system view, return user view with CtrlZ…

机器学习笔记之正则化(五)Dropout

机器学习笔记之正则化——Dropout引言引子&#xff1a;题目描述(正则化相关)正确答案&#xff1a;ABCD\mathcal A\mathcal B\mathcal C\mathcal DABCD题目解析回顾&#xff1a;集成学习方法&#xff1a;Bagging\text{Bagging}BaggingDropout\text{Dropout}Dropout方法深度神经网…

黑马程序员微服务技术栈教程 - 1. SpringCloud 微服务治理

教程链接&#xff1a;https://www.bilibili.com/video/BV1LQ4y127n4 黑马的资料下载链接&#xff1a;https://pan.baidu.com/s/1zRmwSvSvoDkWh0-MynwERA&pwd1234 目录认识微服务单体架构分布式架构微服务微服务结构微服务技术对比SpringCloud总结 &#x1f380;服务拆分及远…

刷题day54:柱形图中最大矩形

题意描述&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 暴力方法&#xff1a; class Solution { public:int largestRectangleArea(ve…

软考第四章 局域网与城域网

局域网与城域网 传统局域网&#xff08;LAN&#xff09;是分组广播式网络&#xff0c;这是与分组交换式的广域网的主要区别。广播技术中&#xff0c;所有工作站都连接到共享的传输介质上&#xff0c;共享信道的分配技术是局域网的核心技术&#xff0c;而这一技术又与网络的拓扑…

故障分析 | 从一则错误日志到 MySQL 认证机制与 bug 的深入分析

作者&#xff1a;李锡超 一个爱笑的江苏苏宁银行 数据库工程师&#xff0c;主要负责数据库日常运维、自动化建设、DMP平台运维。擅长MySQL、Python、Oracle&#xff0c;爱好骑行、研究技术。 本文来源&#xff1a;原创投稿 *爱可生开源社区出品&#xff0c;原创内容未经授权不得…

Redis的MoreKey和BigKey问题

文章目录1、MoreKey案例2、BigKey案例1、MoreKey案例 大批量往Redis里面插入200w测试数据key 在Linux Bash下面执行&#xff0c;插入200w数据 for((i1;i<200*10000;i)); do echo "set k$i v$i">>/root/redisTest.txt;done;使用命令 tail -10 redisTest.t…

Android四大组件之 Activity的启动过程源码解析

前言 Activity是Android中一个很重要的概念&#xff0c;堪称四大组件之首&#xff0c;关于Activity有很多内容&#xff0c;比如生命周期和启动Flags&#xff0c;这二者想要说清楚&#xff0c;恐怕又要写两篇长文&#xff0c;更何况分析它们的源码呢。不过本文的侧重点不是它们…

小黑向携程进攻啦1:跟紧沛奇老师的携程步伐

为什么要学 异步非阻塞、asynciotornado、fastapi、django 3.x asgi、aiohttp都在异步->提升功能 如何讲解&#xff1f; 协程asyncio模块进行异步编程实战案例 1.协程 协程不是计算机提供&#xff0c;程序员人为创造出来的。协程&#xff0c;又称微线程&#xff0c;是一…

共聚焦显微镜——光伏产业制造智能化测量新技术

我国智能光伏应用持续升级&#xff0c;产业各环节产量又创新高。根据光伏行业规范公告企业信息和行业协会预测的数据来看&#xff0c;全国多晶硅、组件产量同比增长均超过60%&#xff0c;晶硅电池产品出口同比增长超过156%。 以共聚焦显微测量技术为原理、应用于材料生产领域的…

STM32的SRAM

文章目录SRAM的概念XM8A51216介绍特点连接线原理框图硬件连接图SRAM的配置使能 FSMC 时钟&#xff0c;并配置 FSMC 相关的 IO 及其时钟使能初始化FSMC&#xff0c;设置FSMC BANK1区域3使能 BANK1 区域 3FSMC读写代码SRAM的概念 SRAM的介绍 STM32F407ZGT6自带了 192K字节的 SRA…

[助人为乐]层次分析法

朋友论文需要用到层次分析法。于是回顾了一下。 相关资料推荐 层次分析法(AHP) 层次分析法&#xff08;AHP&#xff09;详细版本 用人话讲明白AHP层次分析法&#xff08;非常详细原理简单工具实现&#xff09; 层次分析法的流程图 构建层次结构模型(目标-准则-方案层) 深入…

认证服务---OAuth2.0基本介绍,微博登录整合到实际项目中【下篇】

前言 上一篇简单介绍了它的基本使用&#xff0c;这一篇就粗略说明一下如何在项目中实际应用 1、核心代码 1.1 认证微服务 当你进行了授权之后&#xff0c;跳转到一个新的地址。这个地址应该是你访问接口的地址。在这个接口中完成相应的access_token获取&#xff0c;以及调用…

docker-compose容器编排使用详解+示例

文章目录一、docker-compose概述1、产生的背景2、核心概念3、使用的三个步骤4、常用命令二、下载安装1、官方文档2、下载3、卸载三、使用compose1、前置知识&#xff0c;将一个springboot项目打包为镜像2、编写docker-compose.yml文件3、启动docker-compose4、停止一、docker-c…

[Linux]进程控制精讲,简单实现一个shell

目录 前言 进程创建 fork函数初识 写时拷贝 fork常见用法 fork调用失败的原因 进程终止 进程退出场景 进程退出码 查看进程退出码 退出码的含义 进程常见退出方法 exit VS _exit exit函数 _exit函数 二者的区别 return退出 进程等待 进程等待必要性 进程等待…