了解vue.js中的常用指令(总结)

梦雪姑娘_4494

梦雪姑娘_4494

2020-11-06

2653人浏览

转载

v-text

v-text主要用来更新textContent,可以等同于JS的text属性。

<span></span>
// 等同于下方语句: 
<span>{{text}}</span>

v-html

双大括号的方式会将数据解释为纯文本,而非HTML。为了输出真正的HTML,可以用v-html指令。它等同于JS的 innerHtml 属性。

注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译 。

<div></div>

v-show

等同于 css 的 dispaly 属性切换 “none” 和 “block” 设值。

<div>hello world</div>

v-if

v-if可以实现条件渲染,Vue会根据表达式的值的真假条件来渲染元素。

<div>hello world</div>

上方代码,如果 isShow 为 false 则div被渲染,否则不被渲染。

注意:

v-if 需要和 v-show 区分开,v-show 的元素会始终被渲染并保存在 dom 中,它只是简单的切换 css 的 dispaly 属性。

v-if有更高的切换开销。

v-show有更高的初始渲染开销。

所以,如果要非常频繁的切换,使用 v-show 较好;如果在运行时条件不太可能改变,使用 v-if 较好。

v-else

v-else 是搭配 v-if 使用的,它必须紧跟在 v-if 或者 v-else-if 后面,否则不起作用。
类似 JS 的 if .. else。

<div>值为true的时候显示的内容</div>
<div>值为false的时候显示的内容</div>

v-else-if

v-else-if充当v-if的else-if块,可以链式的使用多次。 类似JS的 if .. else if .. else

<div>
  A
</div>
<div>
  B
</div>
<div>
  C
</div>
<div>
  Not A,B,C
</div>

v-for

用v-for指令根据遍历数组来进行渲染。


  • {{item.name}}
<script> new&nbsp;Vue({ &nbsp;&nbsp;el:&nbsp;'#app', &nbsp;&nbsp;data:&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;items:&nbsp;[ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;name:&nbsp;'Runoob'&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;name:&nbsp;'Google'&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;name:&nbsp;'Taobao'&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;] &nbsp;&nbsp;} }) </script> // 补充: // 也可以自行指定参数,最多可以接受3个参数
// 迭代对象
        
  •      {{ index }}. {{ key }} : {{ value }}
  • // 迭代整数
          
    •      {{ n }}     

    v-on

    绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略。
    v-on 也可以简写为 " @ ",如:

    v-on="show" 可以简写为: @show

<!-- 方法处理器 -->
<button></button>

<!-- 动态事件 (2.6.0+) -->
<button></button>

<!-- 内联语句 -->
<button></button>

<!-- 缩写 -->
<button></button>

<!-- 动态事件缩写 (2.6.0+) -->
<button></button>

<!-- 停止冒泡 -->
<button></button>

<!-- 阻止默认行为 -->
<button></button>

<!-- 阻止默认行为,没有表达式 -->

还可以使用修饰符,具体如下:

.stop - 调用 event.stopPropagation()。.prevent - 调用 event.preventDefault()。.capture - 添加事件侦听器时使用 capture 模式。.self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。.{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。.native - 监听组件根元素的原生事件。.once - 只触发一次回调。.left - 只当点击鼠标左键时触发。.right - 只当点击鼠标右键时触发。.middle - 只当点击鼠标中键时触发。.passive - 以 { passive: true } 模式添加侦听器

v-bind

动态地绑定一个或多个特性,或一个组件 prop 到表达式。常用于动态绑定class和style。以及href等。

可简写为:" : ",如:

v-bind:class=" isActive : 'active' :' ' ",可简写为::class=" isActive : 'active' :' ' "

<div></div>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      isActive : true, 
    }
  })
</script>

//渲染结果为: <div></div>

绑定多个 class ,具体如下:

<div>
</div>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      isActive : true, 
      isError:  true,
    }
  })
</script>

//渲染结果为: <div></div>

其他实例,具体见下方代码:

<!-- 绑定一个属性 -->
@@##@@

<!-- 动态特性名 (2.6.0+) -->
<button></button>

<!-- 缩写 -->
@@##@@

<!-- 动态特性名缩写 (2.6.0+) -->
<button></button>

<!-- 内联字符串拼接 -->
@@##@@

<!-- class 绑定 -->
<div></div>
<div></div>
<div>

<!-- style 绑定 -->
<div></div>
<div></div>

<!-- 绑定一个有属性的对象 -->
<div></div>

<!-- 通过 prop 修饰符绑定 DOM 属性 -->
<div></div>

<!-- prop 绑定。“prop”必须在 my-component 中声明。-->
<my-component></my-component><!-- 通过 $props 将父组件的 props 一起传给子组件 --><child-component></child-component><!-- XLink --><svg><a></a></svg><p><span style="font-size: 18px;"><strong>v-model</strong></span></p>
<p>在表单控件或者组件上创建双向绑定。<br>v-model会忽略所有表单元素的value、checked、selected特性的初始值。因为它选择Vue实例数据做为具体的值。</p>
<pre class="brush:js;toolbar:false"><div>
  <input>
  <p>hello {{somebody}}</p>
</div>
<script>
  var app = new Vue({
    el: '#app',
    data: {
      somebody:'小明'
    }
  })
</script>

这个例子中直接在浏览器input中输入别的名字,下面的p的内容会直接跟着变。这就是双向数据绑定。

可用修饰符:

.lazy - 默认情况下,v-model同步输入框的值和数据。可以通过这个修饰符,转变为在change事件再同步。

Vuejs
Vuejs

Vue.js 官方推荐通过 npm 进行安装,这是构建现代化前端项目最主流的方式。在终端中执行 npm install vue 即可获取最新稳定版,如需指定版本可添加 @版本号,例如 npm install vue@3.4.0。安装前请确保已配置 Node.js 环境(推荐 v18 及以上版本),并建议将 npm 镜像源切换至国内镜像以提升下载速度。对于大型项目,还可通过 npm create v

下载

.number - 自动将用户的输入值转化为数值类型

.trim - 自动过滤用户输入的首尾空格

修饰符使用方法:如:

<input>

v-pre

v-pre主要用来跳过这个元素和它的子元素编译过程。可以用来显示原始的Mustache标签。跳过大量没有指令的节点加快编译。

<div>
  <span>{{message}}</span> //这条语句不进行编译
  <span>{{message}}</span>
</div>

这个指令是用来保持在元素上直到关联实例结束时进行编译。

<div>
  <div>
    {{message}}
  </div>
</div>
<script>
  new Vue({
   el:'#app',
   data:{
    message:'hello world'
   }
  })
</script>

解释:
在页面加载时会闪烁,先显示:

<div>
  {{message}}
</div>

然后才会编译为:

<div>
  hello world!
</div>

v-cloak指令可以解决上面插值闪烁的问题,如下:其实利用的就是当插值没有被加载出来的是通过 style属性将内容给隐藏了。

  <style>
    [v-cloak] {
       display: none; 
    }
  </style>
  
  <div>
    <!-- 使用 v-cloak 能够解决 插值表达式闪烁的问题 -->
    <p>++++++++ {{ msg }} ----------</p>
  </div>
  
  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        msg: 'hello',
      }
    })
  </script>

v-once

v-once关联的实例,只会渲染一次。之后的重新渲染,实例极其所有的子节点将被视为静态内容跳过,这可以用于优化更新性能。

<span>This will never change:{{msg}}</span> //单个元素
<div>//有子元素
  <h1>comment</h1>
  <p>{{msg}}</p>
</div>
<my-component></my-component> //组件
      
  • {{i}}

上面的例子中,msg,list即使产生改变,也不会重新渲染。

v-slot

提供具名插槽或需要接收 prop 的插槽。

可简写为:#

slot 和 scope-slot 是在 vue@2.6.x 之前的语法,而从 vue@2.6.0 开始,官方推荐我们使用 v-slot 来替代前两者。

使用具名插槽来自定义模板内容(vue@2.6.x已经废弃)

<div>
  <header>
    <slot></slot>
  </header>
  <main>
    <slot></slot>
  </main>
  <footer>
    <slot></slot>
  </footer>
</div>

在向具名插槽提供内容的时候,我们可以在一个父组件的 元素上使用 slot 特性:

<base-layout>
  <template>
    <h1>Here might be a page title</h1>
  </template>

  <p>A paragraph for the main content.</p>
  <p>And another one.</p>

  <template>
    <p>Here's some contact info</p>
  </template></base-layout>

接下来,使用 v-slot 指令改写上面的栗子:

<base-layout>
  <template>
    <h1>Here might be a page title</h1>
  </template>

  <p>A paragraph for the main content.</p>
  <p>And another one.</p>

  <template>
    <p>Here's some contact info</p>
  </template></base-layout>

使用 # 简写代替 v-slot

<base-layout>
  <template>
    <h1>Here might be a page title</h1>
  </template>

  <p>A paragraph for the main content.</p>
  <p>And another one.</p>

  <template>
    <p>Here's some contact info</p>
  </template></base-layout>

相关推荐:

2020年前端vue面试题大汇总(附答案)

vue教程推荐:2020最新的5个vue.js视频教程精选

更多编程相关知识,请访问:编程教学!!

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vue.js

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Tailwind CSS 响应式布局怎么写
Tailwind CSS 响应式布局怎么写

Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

2026.11.03

0

19

Tailwind CSS 常用类名怎么记
Tailwind CSS 常用类名怎么记

Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

2026.11.03

0

12

码上飞入口地址合集
码上飞入口地址合集

本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

2026.11.03

0

10

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

20

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

20

17

Uvicorn安装配置教程
Uvicorn安装配置教程

本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

2026.11.02

20

17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

120

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

100

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

300

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.4万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习