Vue 1.23

一、Vue 快速上手

1. Vue 是一个用于构建用户界面的渐进式框架

**2.**创建Vue 实例

**3.**插值表达式

javascript 复制代码
<body>
 <div id="app">
    <!-- 这里将来会编写一些用于渲染的代码逻辑 -->
     <a href="">{{ count }}</a>
     <h1>{{ msg }}</h1>
  </div>

  <!-- 引入的是开发版本包 - 包含完整的注释和警告 -->
  <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>

  <script>
    // 一旦引入 VueJS核心包,在全局环境,就有了 Vue 构造函数
    const app = new Vue({
      // 通过 el 配置选择器, 指定 Vue 管理的是哪个盒子
      el:'#app',
      // 通过 data 提供数据
      data: {
        msg: 'hello 灰太狼',
        count: 666
      }
    })
  </script>
</body>

(1)作用:利用表达式进行插值,渲染到页面中

(2)语法:

(3)注意点:① 使用的数据要存在 (data)

② 支持的是表达式,而非语句 if ... for

③ 不能在标签属性里面使用

**4.**响应式特性

定义:数据改变,视图自动更新

(1)访问数据: "实例.属性名"

(2)修改数据: "实例.属性名" = "值"

二、Vue 指令

指令:带有 v- 前缀的特殊标签属性

**1.**动态解析标签

v-html = "表达式 " → 动态设置元素 innerHTML

2. v-show 和 v-if

(1)v-show

(2)v-if

javascript 复制代码
<body>
  <!-- 
    v-show 底层原理:切换 css 的 dispaly: none 来控制显示隐藏
    v-if 底层原理:根据 判断条件 控制元素的 创建 和 移除 
  -->

  <div id="app">
    <div v-show="flag" class="box">我是v-show控制的盒子</div>
    <div v-if="flag" class="box">我是v-if控制的盒子</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: {
        flag: false
      }
    })
  </script>
</body>

3. v-else 和 v-else-if

javascript 复制代码
<body>
  <div id="app">
    <p v-if="gender === 1">性别:♂ 男</p>
    <p v-else>性别:♀ 女</p>
    <hr>
    <p v-if="score >= 90">成绩评定A:奖励电脑一台</p>
    <p v-else-if="score >= 70">成绩评定B:奖励周末郊游</p>
    <p v-else-if="score >= 60">成绩评定C:奖励零食大礼包</p>
    <p v-else>成绩评定D:惩罚一周不能玩手机</p>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        gender: 2,
        score: 100
      }
    })
  </script>
</body>

4. v-on

(1)普通

javascript 复制代码
<body>
  <div id="app">
    <button @click="count--">-</button>
    <span>{{ count }}</span>
    <button v-on:click="count++">+</button>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        count: 100
      }
    })
  </script>
</body>

(2)调用传参

javascript 复制代码
<body>
  <div id="app">
    <div class="box">
      <h3>灰太狼自动售货机</h3>
      <button @click="buy(5)">可乐5r</button>
      <button @click="buy(10)">咖啡10r</button>
    </div>
    <p>银行卡余额:{{ money }}r</p>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        money: 100,
      },
      methods: {
        buy (price) {
          console.log(price)
          this.money -= price
        }

      }
    })
  </script>

</body>

5. v-bind

javascript 复制代码
<body>
  <div id="app">
    <!-- v-bind:src  =>  :src -->
    <img :src="imgUrl" v-bind:title="msg" alt="">
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el:'#app',
      data: {
        imgUrl: '../考核JS/img/course1.png',
        msg: '哈喽,灰太狼'
      }
    })
  </script>
</body>

6. v-for

javascript 复制代码
<body>
  <div id="app">
    <h3>青青草原</h3>
    <ul>
      <li v-for="(item, index) in list">
        {{ item }} - {{ index }}
      </li>
    </ul>

    <ul>
      <li v-for="(item) in list">
        {{ item }}
      </li>
    </ul>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        list: ['灰太狼','蕉太狼','红太狼']
      }
    })
  </script>
</body>

v-for 中的 key

7.v-model

javascript 复制代码
  <div id="app">
    <!--
     v-model 可以让数据和视图,形成双向数据绑定
     (1) 数据变化, 视图自动更新
     (2) 视图变化, 数据自动更新
      -->
    账户:<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 src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        username: '',
        password: ''
      },
      methods: {
        login () {
          console.log(this.username, this.password)
        },
        reset () {
          this.username = ''
          this.password = ''
        }
      }
    })
  </script>

三、综合案例

相关推荐
linweidong2 小时前
C++ 模块化编程(Modules)在大规模系统中的实践难点?
linux·前端·c++
leobertlan5 小时前
2025年终总结
前端·后端·程序员
子兮曰6 小时前
OpenClaw架构揭秘:178k stars的个人AI助手如何用Gateway模式统一控制12+通讯频道
前端·javascript·github
Howrun7776 小时前
VSCode烦人的远程交互UI讲解
ide·vue.js·vscode
百锦再6 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
莲华君6 小时前
React快速上手:从零到项目实战
前端·reactjs教程
百锦再6 小时前
React编程高级主题:测试代码
android·前端·javascript·react.js·前端框架·reactjs
易安说AI7 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
颜酱8 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
失忆爆表症8 小时前
05_UI 组件库集成指南:Shadcn/ui + Tailwind CSS v4
前端·css·ui