50条Vue指令使用小技巧

www.jswusn.com Other 2025-09-05 20:43:29 3次浏览

v-bind

  • 用法:动态绑定属性
  • 示例:
<img v-bind:src="imageSrc" alt="图片">


v-model

  • 用法:双向数据绑定
  • 示例:
<input v-model="inputValue" placeholder="请输入内容">


v-if

  • 用法:条件渲染
  • 示例:
<p v-if="isVisible">我可见</p>


v-else

  • 用法:条件渲染的else
  • 示例:
<p v-if="isVisible">我可见</p>
<p v-else>我不可见</p>

v-else-if

  • 用法:条件渲染的else if
  • 示例:
<p v-if="score > 80">优秀</p>
<p v-else-if="score > 60">良好</p>
<p v-else>需要努力</p>

v-for

  • 用法:列表渲染
  • 示例:
<ul>
  <li v-for="item in items" :key="item.id">{{ item.name }}</li>
</ul>

v-show

  • 用法:控制元素显示与隐藏
  • 示例:
<p v-show="isVisible">我可见</p>

v-on

  • 用法:事件监听
  • 示例:
<button v-on:click="handleClick">点击我</button>

v-bind:class

  • 用法:动态绑定类
  • 示例:
<div v-bind:class="{ active: isActive }"></div>

v-bind:style

  • 用法:动态绑定样式
  • 示例:
<div v-bind:style="{ color: activeColor }"></div>

v-pre

  • 用法:跳过编译
  • 示例:
<span v-pre>{{ this will not be compiled }}</span>

v-cloak

  • 用法:防止闪烁
  • 示例:
<div v-cloak>
  {{ message }}
</div>

v-once

  • 用法:一次性渲染
  • 示例:
<p v-once>{{ message }}</p>

v-slot

  • 用法:具名插槽
  • 示例:
<template v-slot:header>
  <h1>标题</h1>
</template>

v-model.lazy

  • 用法:懒惰模式的双向绑定
  • 示例:
<input v-model.lazy="inputValue">

v-model.number

  • 用法:将输入值转为数字
  • 示例:
<input v-model.number="age" type="number">

v-model.trim

  • 用法:去除输入值的空格
  • 示例:
<input v-model.trim="username">

v-on:keyup

  • 用法:监听键盘按键
  • 示例:
<input v-on:keyup="handleKeyup">

v-on:submit.prevent

  • 用法:阻止表单提交
  • 示例:
<form v-on:submit.prevent="handleSubmit">
  <input type="text">
  <button type="submit">提交</button>
</form>

v-if与v-else结合

  • 用法:条件渲染组合
  • 示例:
<div v-if="isLoggedIn">欢迎回来</div>
<div v-else>请登录</div>


v-bind:disabled

  • 用法:动态禁用按钮
  • 示例:
<button v-bind:disabled="isDisabled">点击我</button>

v-bind:placeholder

  • 用法:动态绑定输入框占位符
  • 示例:
<input v-bind:placeholder="placeholderText">


v-on:click.stop

  • 用法:停止事件冒泡
  • 示例:
<button v-on:click.stop="handleClick">点击我</button>

v-on:mouseenter

  • 用法:鼠标进入事件
  • 示例:
<div v-on:mouseenter="handleMouseEnter">鼠标经过我</div>

v-on:mouseleave

  • 用法:鼠标离开事件
  • 示例:
<div v-on:mouseleave="handleMouseLeave">鼠标离开我</div>

v-on:input

  • 用法:监听输入事件
  • 示例:
<input v-on:input="handleInput">

v-bind:key

  • 用法:为列表渲染提供唯一键
  • 示例:
<li v-for="item in items" v-bind:key="item.id">{{ item.name }}</li>

v-if与v-for结合

  • 用法:在循环中使用条件渲染
  • 示例:
<ul>
  <li v-for="item in items" v-if="item.visible">{{ item.name }}</li>
</ul>

v-show与v-if的区别

  • 用法:比较两者的用法
  • 示例:
<p v-show="isVisible">我可见 (v-show)</p>
<p v-if="isVisible">我可见 (v-if)</p>


v-bind:src

  • 用法:动态绑定图片源
  • 示例:
<img v-bind:src="imageUrl">

v-bind:href

  • 用法:动态绑定链接
  • 示例:
<a v-bind:href="url">访问链接</a>

v-on:focus

  • 用法:监听聚焦事件
  • 示例:
<input v-on:focus="handleFocus">

v-on:blur

  • 用法:监听失去焦点事件
  • 示例:
<input v-on:blur="handleBlur">

v-bind:multiple

  • 用法:动态绑定多选属性
  • 示例:
<select v-bind:multiple="isMultiple">
  <option value="1">选项1</option>
  <option value="2">选项2</option>
</select>

v-bind:required

  • 用法:动态绑定必填属性
  • 示例:
<input v-bind:required="isRequired">

v-bind:readonly

  • 用法:动态绑定只读属性
  • 示例:
<input v-bind:readonly="isReadonly">

v-bind:checked

  • 用法:动态绑定复选框选中状态
  • 示例:
<input type="checkbox" v-bind:checked="isChecked">

v-on:change

  • 用法:监听变化事件
  • 示例:
<select v-on:change="handleChange">
  <option value="1">选项1</option>
</select>

v-if与v-show的性能比较

  • 用法:性能上的选择
  • 示例:
<div v-if="isVisible">使用v-if</div>
<div v-show="isVisible">使用v-show</div>

v-for与v-if的性能优化

  • 用法:避免在v-for中使用v-if
  • 示例:
<ul>
  <li v-for="item in filteredItems" :key="item.id">{{ item.name }}</li>
</ul>

v-model与自定义组件

  • 用法:在自定义组件中使用v-model
  • 示例:
<custom-input v-model="inputValue"></custom-input>

v-slot:default

  • 用法:默认插槽
  • 示例:
<template v-slot:default>
  <p>默认内容</p>
</template>

v-bind:style对象

  • 用法:动态绑定多个样式
  • 示例:
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

v-for与对象

  • 用法:遍历对象
  • 示例:
<ul>
  <li v-for="(value, key) in object" :key="key">{{ key }}: {{ value }}</li>
</ul>
 **v-on:click.native**
- 用法:监听原生事件
- 示例:
```html
<custom-button v-on:click.native="handleClick"></custom-button>


v-bind:innerHTML

  • 用法:动态绑定HTML内容
  • 示例:
<div v-bind:innerHTML="rawHtml"></div>

v-on:keydown

  • 用法:监听按下键盘事件
  • 示例:
<input v-on:keydown="handleKeydown">

v-on:keyup.enter

  • 用法:监听回车键
  • 示例:
<input v-on:keyup.enter="handleEnter">

v-on:click.capture

  • 用法:捕获阶段的点击事件
  • 示例:
<button v-on:click.capture="handleClick">捕获点击</button>

v-on:mouseleave.stop

  • 用法:停止mouseleave事件冒泡
  • 示例:
<div v-on:mouseleave.stop="handleMouseLeave">鼠标离开我</div>


以上就是本期的全部内容

技术分享

苏南名片

  • 联系人:吴经理
  • 电话:152-1887-1916
  • 邮箱:message@jswusn.com
  • 地址:江苏省苏州市相城区

热门文章

Copyright © 2018-2025 jswusn.com 版权所有

技术支持:苏州网站建设  苏ICP备18036849号