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>

三、综合案例

相关推荐
wqwqweee1 小时前
Flutter for OpenHarmony 看书管理记录App实战:搜索功能实现
开发语言·javascript·python·flutter·harmonyos
HIT_Weston3 小时前
107、【Ubuntu】【Hugo】搭建私人博客:模糊搜索 Fuse.js(三)
linux·javascript·ubuntu
henujolly6 小时前
ethers.js读取合约信息
开发语言·javascript·区块链
毕设源码-郭学长7 小时前
【开题答辩全过程】以 基于Web的高校课程目标达成度系统设计与实现为例,包含答辩的问题和答案
前端
wuhen_n7 小时前
高阶函数与泛型函数的类型体操
前端·javascript·typescript
POLITE38 小时前
Leetcode 437. 路径总和 III (Day 16)JavaScript
javascript·算法·leetcode
難釋懷8 小时前
解决状态登录刷新问题
java·开发语言·javascript
ヤ鬧鬧o.8 小时前
多彩背景切换演示
前端·css·html·html5
一起养小猫8 小时前
Flutter实战:从零实现俄罗斯方块(三)交互控制与事件处理
javascript·flutter·交互