站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

深入聊聊Vue中的一些常用指令

时间:2022-01-12 [网络编程]作者:fabuyuan 浏览:4 次

本篇文章带大家深入聊聊Vue中的一些常用指令,希望对大家有所帮助。

深入聊聊Vue中的一些常用指令

首先来聊聊Vue框架,Vue是一套用于构建用户界面的渐进式的JavaScript框架,对于初学者来说是非常友好的 , Vue的虚拟Dom , 数据双向绑定 , 都使开发者可以快速上手 , 而我个人感觉 , Vue的指令使用起来非常的方便 , 今天的这篇文章们就来聊聊常用的Vue指令吧!

v-for

在初学任何一门语言的时候我们或多或少都接触过 for

for (let i = 0; i < arr.length; i++) {

}

Vue 的 v-for跟我们js里面的最根本的概念还是一样的就是两个字 循环

v-for后面括号里面 itemindex 就相当for循环里面的 arr[i]i 也就是对应的每一个 元素下标 , 后面的 in arr 这个 arr 就是我们想要循环的数组 最后一个 :key="item.id "是v-for的核心 如果没有这个:key 我们的Vue就会报错 , 那么为什么会有Key , Key要给的参数是什么呢? Key的参数是唯一的 , 也就是我们不管循环几次 , 每次循环的key不能有重复 , 这里我们不推荐用index来当你的Key , 说到底,key的作用就是更新组件时判断两个节点是否相同。相同就复用,不相同就删除旧的创建新的。在渲染简单的无状态组件时,如果不添加key组件默认都是就地复用,不会删除添加节点,只是改变列表项中的文本值,要知道节点操作是十分耗费性能的。而添加了key之后,当对比内容不一致时,就会认为是两个节点,会先删除掉旧节点,然后添加新节点。

<li v-for="(item,index) in arr" :key="item.id">
     {{ item.name }}
</li>

v-show

v-show 是根据布尔值来进行渲染 , true 就页面显示 , false 就不在页面显示 ,他的原理其实是控制css样式来使得我们对应的组件或者盒子显示 ,隐藏dispaly:"none" ,显示dispaly:"block"

<div v-show="true"> 我 dispaly:"block" 拉 </div>

<div v-show="false"> 我 dispaly:"none" 拉 </div> //假装我隐藏了 你看不见我

v-if

v-if 也是根据布尔值来进行渲染 ,跟v-show也是差不多, true 就页面显示 , false 就不在页面显示 但是v-if是惰性的 如果初始值是false组件就不会渲染出来 , 知道第一次他的参数变成true 他才会渲染,但他的条件又变成false的时候 , 子组件适当就会呗地被销毁和重建 , 如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

<div v-if="true">  </div>

<div v-if="false"> 我被销毁了呜呜呜 </div> //假装我隐藏了 你看不见我

v-else

提到 v-if 也就聊到了 v-elsev-if条件不成立的时候就会直接走到v-else上去 ,记住v-else后面不能跟等号 , 组件之前必须要跟v-if

<div v-if="false"> 你看不到我啊  </div> //因为我条件不成立

<div v-else> 你能看到我 </div>

v-else-if

提到 v-ifv-else 也就也会想到 v-else-ifv-if条件不成立的时候就会直接走到v-else-if上去看条件判断成立不成立 , 条件成立就渲染组件 , 组件之前必须要跟v-if

<p v-if="score>=90">厉害</p>

<p v-else-if="score>=60">差不多</p>

v-once

v-once 它的作用就是定义它的元素或组件只会渲染一次 , 当第一次渲染之后也不会随着数据的更新而来进行重新渲染 , 就相当于一个静态内容

<template>
    <div v-once>{{count}}</div>
    <button v-on:click="addCount"> 你点我count也不加 </button>
</template>



<script>
    export default {
        data() {
            return { count: 10 } 
        },
        methods: { 
        addCount: function () {
            this.count += 1;
            console.log('this.count:'+this.count); 
            } 
        }
    }
</script>

v-text

v-text 以文本的方式来插入数据 , 是用于操作纯文本 , 他是会替代本身元素上面的内容,如果数据更新随之试图也会发生改变

<p v-text="data"> 你好你好 </p>

v-html

v-html v-html用于输出html,它与v-text区别在于v-text输出的是纯文本,浏览器不会对其再进行html解析,但v-html会将其当html标签解析后输出

<p v-html="data">厉害</p>


页面显示:<p>
            <h1>你好啊<h1>
        </p> // 外层还是会有p标签来包裹



data:<h1>你好啊<h1>

v-on

v-on 有一个简便的写法就是" @ " 简单来说v-on就是绑定事件 , 可以在一个标签绑定多个事件 , v-on:第一个是事件 , 事件后面跟着一个自定义方法

 <button v-on:mouseenter='onenter' @click='leave'>click me</button>

v-bind

v-bind 也有一个简便的写法就是" : " 简单来说v-on就是用于绑定数据和元素属性 , 最常用的方法就是用于动态绑定class

 <ul  :class="classObject"></ul>

v-model

v-model是Vue双向绑定指令 , 它可以在页面是输入的状态同时改变绑定data属性 , 也会在data属性发生改变的时候也更新页面的状态 , 我们经常在input上面能发现他的存在 , 他的本质上其实是绑定了<input :value="test" @input="test = $event.target.value">v-model后面可以跟修饰符比如 .lazy.trim.number 这些修饰符一起使用

.lazy 将input的实时更新改为一个change事件 , 只有失焦的时候input才会触发事件

.trim 去除字符串首尾的空格

.number 将数据转化为值类型

<input v-model="test">

<input v-model.lazy="msg" >

<input v-model.trim="msg">

<input v-model.number="age" type="number">

【相关推荐:vue.js教程】

以上就是深入聊聊Vue中的一些常用指令的详细内容,更多请关注站长家园其它相关文章!

本文标签:  Vue指令

转载请注明来源:深入聊聊Vue中的一些常用指令

本文永久链接地址:https://www.adminjie.com/post/7564.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • docker能用yum命令吗

      docker能用yum命令吗

      docker能用yum命令,docker容器内安装yum的方法:1、通过“apt-getupdate”更新apt-get指令;2、通过“apt-getins...

    • 如何解决docker telnet不通的问题

      如何解决docker telnet不通的问题

      dockertelnet不通的解决办法:1、查看配置文件;2、修改nginx配置文件的端口为80;3、重新加载即可。本文操作环境:centOS6.8系统、Do...

    • css怎样改变一个图片高度和宽度

      css怎样改变一个图片高度和宽度

      在css中,可以使用width和height属性来改变一个图片高度和宽度,只需要给图片元素添加“width:宽度值;height:高度值;”样式即可。width...

    • docker不能删除镜像怎么办

      docker不能删除镜像怎么办

      docker不能删除镜像的解决办法:1、删除REPOSITORY;2、删除IMAGEID;3、通过“dockerimages”查看镜像即可。本文操作环境:c...

    • css怎么实现图片放大缩小动画

      css怎么实现图片放大缩小动画

      方法:1、使用“@keyframes动画名称{}”规则和“transform:scale(缩放比例);”语句创建放大缩小动画;2、使用“图片元素{animat...

    热门文章