【vue2】常见指令的用法与示例

news2025/1/10 17:04:42

1d43f75f092a4050a8ce31e2d85f6868.gif

🥳博       主:初映CY的前说(前端领域)

🌞个人信条:想要变成得到,中间还有做到!

🤘本文核心:vue指令的声明与使用(v-text、v-html、v-on、v-bind、v-for、v-model、v-if、v-show、指令修饰符的使用)

目录(文末有博主给大家准备好的XMIND思维导图,可快速预览本文核心知识要点呦)

目录

一、vue指令是什么

二、vue常见指令

1.v-text

2.v-html

3.v-on

4.v-bind

5.v-for

6.v-model

7.v-if

8.v-show

10.指令修饰符

来个综合案例,大家体验下效果



一、vue指令是什么

  • 概念:是html的标签的新增属性
  • 作用:用来给标签增加一些新的功能
  • 语法:v-指令名="指令值"

Vue指令官网文档传送门:API — Vue.js


二、vue常见指令

【指令学习前置】vue实例中methods对象

  用于存放vue实例对象中的方法

(现在不需要理解各属性用法,知道这个methods概念即可,下文会讲解)


1.v-text

该指令主要是用于处理文本数据用的,特点就是会把该标签文本内容给覆盖。

比如下面这个例子我有两个p标签,第二个没使用v-text指令,我p标签的其他内容还在


2.v-html

该指令同v-text指令类似,也具有覆盖标签文本作用。

来看看它与v-text的的区别,下面这个图就很清楚的显示了v-html它具有解析标签的作用,而v-text不具有解析标签的作用


3.v-on

该指令是用于绑定vue中事件。

语法格式:v-on:click="方法名"      简写格式为:@click="方法名"

v-on是搭配事件来使用的。常见的事件(click,keyup,mouseenter,mouseleave等)。

 下面这是上述代码的示例图,可以看到我们放在methods中写的方法可以触发生效

4.v-bind

该指令用于绑定元素数据与标签属性的(data中获取数据),解析html的属性,转化为vue可识别的属性

语法格式:v-bind:属性名="数据名"      简写格式为::属性名="数据名"

 可以绑定元素标签与属性,同时标签也具有解析作用,如下图中的aaa加上了:就具有了解析的作用,同时的话也是自定义了一个属性取名为aaa

可解析属性:


5.v-for

该指令用于遍历vue中数组

语法格式:v-for="(item, index) in 数组" (括号内为形参不需要index可以不写)

 这个指令写在哪一个元素身上,就重复遍历生成哪一个元素


6.v-model

该指令用于绑定表单数据双向绑定,常见表单元素有input、radio、checkbox、select

语法格式:v-model="data中一致变量名"

当我们双向绑定之后,我们就可以快速的获取、设置表单的值。这个指令有三个注意点①绑定了表单数据需要在data中声明以下②this指的是我们new Vue出来的实例对象就是app


7.v-if

该指令是用于做判断,当条件符合的话就将这个标签给显示出来

语法格式:v-if="判断条件"

看到了这了,对比v-for有没有发现我们看名字就知道这个是什么意思。其实v-只是本质来说就是告诉vscode这是vue框架,因此类似于v-else-if、v-else都是大同小异的用法。


8.v-show

该指令用设设置标签的display属性值

语法格式:v-show="判断条件"

与v-if使用的效果看起来是一样的,但是底层的逻辑是不一样的。v-show仅是display的一种切换方式,当我们打开网页的时候页面上已经加载完成,仅仅是有没有显示隐藏的区别。而v-if它在vue中有一种“懒加载”技术。看条件渲染,如果不满足条件,则该元素不会添加到DOM树中。

因此我们用于频繁的切换推荐使用v-show。对于较少的东西采用v-if,比如我们登陆方式,有手机号登录与邮箱登录,我们考虑到大部分人都是用手机号登录,较少人使用邮箱登录,所以处理这样的切换方式的时候我们用v-if会更好一点(不点邮箱登录就不会加载邮箱登录的样式,省了渲染从而提高了响应速度)

10.指令修饰符

这不是指令,是限定我们事件触发行为的常用于stop、prevent、enter等

通过下面这个可以看到,我们在v-on这个的事件基础上加了一些限制功能,我们可明显的看到我们阻止了子盒子向外的冒泡与我们阻止了跳转等等。


来个综合案例,大家体验下效果

这是实现的效果图,文末有源码可供兄弟姐妹参考

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, user-scalable=0"
    />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <!-- 导包 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 
    <style>
      h2 {
        text-align: center;
      }

      body {
        text-align: center;
      }

      input {
        width: 300px;
        height: 30px;
        border-radius: 5px;
        font-size: 22px;
        padding-left: 10px;
        outline: none;
        border: 1px solid #000;
      }

      .items {
        list-style: none;
        padding: 0;
        width: 300px;
        margin: 0 auto;
        text-align: left;
      }

      table,
      th,
      td,
      tr {
        width: 600px;
        margin: 50px auto;
        border: 1px solid black;
        border-collapse: collapse;
        padding: 5px;
        transition: all 0.5s linear;
      }

      tr.over {
        background-color: cyan;
      }
    </style>
  </head>

  <body>
    <!-- HTML结构 -->
    <div id="app">
      <h2>初映记事本</h2>
      <input type="text" placeholder="请输入内容"   v-model.lazy="info"  @keyup.enter="doInfo"/>
      <table>
        <thead>
          <th>索引</th>
          <th>内容</th>
          <th>操作</th>
        </thead>
        <tbody>
          <tr v-for="(item,index) in list">
            <td>{{index+1}}</td>
            <td>{{item}}</td>
            <td><button @click="doDelete(index)">删除</button></td>
            <!-- <td><button @click=" list.splice(index,1) ">删除</button></td> -->

            
          </tr>
        </tbody>
      </table>
    </div>
    <!--思路分析(交互)
        1.输入框输入enter键,将数据添加到列表
        2.双击列表li元素删除
        Vue编程思维
            * (1)写页面结构 HTML+CSS
            * (2)分析页面需要显示什么数据,将其保存在vue实例的data对象中
            * (3)在页面视图中使用插值语法或者指令显示data中的数据

            需要:
            (1)获取文本框的内容
            (2)将数据存入到list当中,再清空splice(index,1)
            (3)可以做删除操作
     -->
    <script>
      /* 创建vue实例 */
      let app = new Vue({
        //el:挂载点
        el: "#app",
        //data: 要渲染的数据
        data: {
          info:'',
          list:[]
        },
        methods: {
          doInfo(){
            if(this.info===''){
             return alert('请输入值')
            }
            // console.log(this);
            console.log(this.info);
            this.list.push(this.info)
            this.info=''
          },
          doDelete(index){
            this.list.splice(index,1)
          }
        }
      })
    </script>
  </body>
</html>

各位,兄弟姐妹们,感谢你看到了这里!

下篇文章将讲解【计算属性与侦听器】的用法,本专栏将持续更新~~~~~~

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

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

相关文章

C++继承与类的静态成员

什么是继承&#xff1f; 继承(inheritance)机制是面向对象程序设计中使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能。这样产生的新类&#xff0c;称派生类&#xff08;或子类&#xff09;&#xff0c;被继承的类…

【多标签文本分类】《基于标签语义注意力的多标签文本分类》

阅读摘要&#xff1a;   为了建立标签的语义信息和文档的内容信息之间的联系并加以利用&#xff0c;文章提出了一种基于标签语义注意力的多标签文本分类(LAbel Semantic Attention Multi-label Classification,简称 LASA)方法。 参考文献&#xff1a;   [1] 基于标签语义注…

【nowcoder】笔试强训Day17

目录 一、选择题 二、编程题 2.1杨辉三角的变形 2.2计算某字符出现次数 一、选择题 1.一个查询语句执行后显示的结果为&#xff1a; 1班 80 2班 75 3班 NULL &#xff0c;则最有可能的查询语句是&#xff08;&#xff09; A.SELECT AVG(成绩) FROM 成绩表 WHERE class<…

WindowManager

1 Window、WindowManager 和 WMS Window 是一个抽象类&#xff0c;具体的实现类为 PhoneWindow&#xff0c;它对 View 进行管理。WindowManager 是一个接口类&#xff0c;继承自接口ViewManager&#xff0c;它是用来管理 Window 的&#xff0c;它的实现类为 WindowManagerImpl…

[Leetcode] 二叉树的深度、平衡二叉树

题目链接&#xff1a;二叉树的最大深度 https://leetcode.cn/problems/maximum-depth-of-binary-tree/submissions/二叉树的最小深度 https://leetcode.cn/problems/minimum-depth-of-binary-tree/平衡二叉树 https://leetcode.cn/problems/balanced-binary-tree1.二叉树的最大…

微信小程序实现上下左右滑动触发联动选项卡、绝对值、事件、parse、stringify、Math、atan、abs、findIndex

文章目录序言1、HTML部分2、JavaScript部分&#xff08;上下左右滑动均触发&#xff09;3、JavaScript部分&#xff08;左右滑动触发&#xff09;4、效果演示序言 最近在写原生微信小程序项目的时候遇到了左右滑动内容更新数据&#xff0c;同时改变tabBar的高亮效果。于是就写了…

B. Camp Schedule(KMPnext数组)

Problem - 1137B - Codeforces 在全国范围内广为人知的春季编程训练营即将开始。因此&#xff0c;所有友好的策展人和教师团队开始组成营地的时间表。经过不断的讨论&#xff0c;他们想出了一个时间表&#xff0c;可以表示为一个二进制字符串&#xff0c;其中第i个符号是 "…

前后端的身份认证

1、Web 开发模式 目前主流的 Web 开发模式有两种&#xff0c;分别是&#xff1a; 基于服务端渲染的传统 Web 开发模式基于前后端分离的新型 Web 开发模式 1.1、服务端渲染的 Web 开发模式 服务端渲染的概念&#xff1a;服务器发送给客户端的 HTML 页面&#xff0c;是在服务器…

【Linux】进程间通信(万字详解) —— 下篇

&#x1f387;Linux&#xff1a; 博客主页&#xff1a;一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 看似不起波澜的日复一日&#xff0c;一定会在某一天让你看见坚持…

我的周刊(第073期)

我的信息周刊&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。&#x1f3af; 项目zlib-searcher[1]zlib 开源搜索方案&#xff08;zli…

基于朴素贝叶斯算法的激光雷达点云分类

前言激光雷达技术是一种采集三维数据的、重建三维模型的手段&#xff0c;运用在各个行业&#xff0c;随着激光雷达技术的发展与广泛运用本文采用监督分类中的朴素贝叶斯算法进行地基于激光雷达的地物分类。首先根据点云的几何位置建立邻域范围&#xff0c;借助邻域点的集合计算…

分享98个PHP源码,总有一款适合您

PHP源码 分享98个PHP源码&#xff0c;总有一款适合您 PHP源码下载链接&#xff1a;https://pan.baidu.com/s/1ZNcdj0bLY51UXNoXq8tgFg?pwdwn4b 提取码&#xff1a;wn4b 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0…

ORB-SLAM2 --- LoopClosing::ComputeSim3 函数

目录 1.什么是sim3&#xff0c;为什么要做sim3 2.函数流程 3.code 4.函数解析 4.1 准备工作 4.2 遍历闭环候选帧集&#xff0c;初步筛选出与当前关键帧的匹配特征点数大于20的候选帧集合&#xff0c;并为每一个候选帧构造一个Sim3Solver 4.3 对每一个候选帧用Sim3Sol…

实例分析Linux内存泄漏检测方法

一、mtrace分析内存泄露 mtrace&#xff08;memory trace&#xff09;&#xff0c;是 GNU Glibc 自带的内存问题检测工具&#xff0c;它可以用来协助定位内存泄露问题。它的实现源码在glibc源码的malloc目录下&#xff0c;其基本设计原理为设计一个函数 void mtrace ()&#x…

解决Tinkphp的success跳转“使用路由别名后模块和路由器访问不了”问题

遇到的问题&#xff1a;我的thinkphp5网站添加了以下路由别名&#xff1a;Route::alias([ index>index/index, ]);使用http://域名/Index/user/password.html访问正常但使用http://域名/index/user/password.html就访问失败使用$this->success(修改密码成功);进行提示跳转…

Java 链表与LinkedList

链表的组合形式 ①有头结点、无头结点 ②单向链表、双向链表 ③循环链表、非循环链表 根据自由组合&#xff0c;可以得到8种不同形式的链表&#xff0c;那么在刷题种常碰到的是不带有头结点的单向非循环链表和不带头结点的双向非循环链表。 模拟实现不带头结点的单向非循环链表…

Notes可以手动签名了

大家好&#xff0c;才是真的好。 Notes/Domino 12.0.2陆续有人下载测试了&#xff0c;关于Notes的新功能中&#xff0c;我们上一篇也介绍到了可以手动签名。 字面上的意思&#xff0c;就是你可以调出手写板&#xff0c;然后使用触屏或鼠标来进行签名&#xff0c;可以在Nomad …

javaEE 初阶 — 定时器

文章目录定时器1 什么是定时器2 标准库中定时器3 实现一个定时器3.1 实现的思路3.2 为什么要使用优先级队列来保存任务3.3 开始实现定时器 1 什么是定时器 定时器 类似于一个 “闹钟”&#xff0c;达到一个设定的时间之后&#xff0c;就执行某个指定好的代码。 定时器是一种实…

印染行业APS智能排程排产的应用意义

不得不说的印染之“痛” 在印染行业&#xff0c;因排产无法自动化、智能化&#xff0c;企业在交期、成本、生产管理方面承受着巨大的压力&#xff0c;尤其当下印染企业生产管理正从传统的粗放式转向精细化&#xff0c;这些痛点愈加凸显。 一方面&#xff0c;客户和企业面临一个…

httpd安装

一、离线安装 1、去 https://pkgs.org/ 下载httpd所依赖的7个rpm包 [基于CentOS 7 x86_64系统&#xff0c;如需其他环境可前往官网直接下载] apr-1.4.8-5.el7.x86_64.rpm apr-util-1.5.2-6.el7.x86_64.rpm apr-util-ldap-1.5.2-6.el7.x86_64.rpm postgresql-libs-9.2.24-1.el…