Vue(2)——Vue指令

目录

v-html

v-show和v-if

v-else和v-else-if

v-on

v-bind

v-for

v-model


v-html

设置元素的innerHTML

复制代码
<body>
  <div id="app">
    <div v-html="msg"></div>
  </div>

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

  <script>
    const app = new Vue({
      el: '#app',
      data: {
        msg: `<a href='http://www.baidu.com'>aa</a>`
      }
    })
  </script>
</body>

v-show和v-if

控制元素显示隐藏

v-show='表达式' true为显示,false为隐藏

原理:切换display:none控制显示隐藏

v-if='表达式' true为显示,false为隐藏 渲染隐藏

原理:基于条件判断,是否创建或移除元素节点

v-else和v-else-if

辅助v-if进行判断渲染

v-on

作用:注册事件 = 添加监听+提供处理逻辑

语法:

v-on:事件名 = ''内联语句"

v-on:事件名='methods的函数名'

v-on:事件名 = ''内联语句"

复制代码
  <div id="app">
    <button v-on:click="count--">-</button>
    <span>{{count}}</span>
    <button v-on:click="count++">+</button>
  </div>

  <script>
    const app = new Vue({
      el: '#app',
      data: {
        count: 100
      }
    })
  </script>

实现点击+号数字加1,点击-号数字减1

可以简写成:@事件名

@click="count++"


v-on:事件名='methods的函数名'

第二种写法实现,点击切换显示

复制代码
  <div id="app">
    <button @click="fn">切换显示隐藏</button>
    <h1 v-show="isShow">okokok</h1>
  </div>

  <script>
    const app = new Vue({
      el: '#app',
      data: {
        isShow: true
      },
      methods: {
        fn() {
          this.isShow = !this.isShow
        }
      }
    })
  </script>

v-bind

作用:动态的设置html的标签属性

语法:v-bind:属性名="表达式"(src,title)

简写:v-bind:src可以简写成 :src

v-for

作用:基于数据循环,多次渲染整个元素

遍历数组语法:

v-for="(item,index) in 数组"

其中item是元素,index是下标

复制代码
  <div id="app">
    <ul>
      <li v-for="(item,index) in list">
        {{item}}
      </li>
    </ul>
  </div>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        list: ['西瓜', '草莓', '香蕉']
      }
    })
  </script>

v-for中的key

作用:给列表项添加的唯一标识。便于Vue进行列表正确的排序复用

语法:key属性 = "唯一标识"

注意:

  1. key的值只能是字符串或数字类型
  2. key的值必须具有唯一性
  3. 推荐使用id作为key,不推荐使用index作为key

v-model

作用:给表单元素使用,双向数据绑定 ,可以快速获取或设置表单元素内容

数据变化,视图自动更新。视图变化,数据自动更新

语法:v-model = '变量'

复制代码
  <div id="app">
    账户:<input type="text" v-model="username"><br><br>
    密码:<input type="password" v-model="password"><br><br>
    <button @click="login">登陆</button>
    <button @click="reset">重置</button>
  </div>

  <script>
    const app = new Vue({
      el: '#app',
      data: {
        username: '',
        password: ''
      },
      methods: {
        login() {
          console.log(this.username, this.password);

        },
        reset() {
          this.username = '',
            this.password = ''
        }
      }
    })
  </script>
相关推荐
远航_18 小时前
OpenSpec 完整详细介绍
前端·后端
召钱熏19 小时前
状态枚举正确≠渲染正确:一个语音按钮的状态机边界修复实录
android·前端
SkyWalking中文站19 小时前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
cidy_9819 小时前
Dify 操作教程:工作流编排 & Chat 对话编排
前端·工作流引擎
tangdou36909865519 小时前
AI真好玩系列-2分钟快速了解DeepAgents | Quick Guide to DeepAgents in 2 Minutes
前端·javascript·后端
张元清19 小时前
React useIntersectionObserver Hook:懒加载与可见性检测(2026)
javascript·react.js
小四的小六19 小时前
AI Agent效果评测实战——搭完Agent才是噩梦的开始
前端
梨子同志19 小时前
JavaScript
前端
彭于晏爱编程19 小时前
纯 JS + Node,一个下午手搓了能读懂公司代码的 AI 助手,老板以为我转行了
前端·javascript
Delicate20 小时前
前端路由扫盲篇:Hash 模式和 History 模式到底怎么选?
前端