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>

三、综合案例

相关推荐
lovingsoft6 分钟前
Chrome Lighthouse 详解
前端·chrome
Qlly16 分钟前
全栈工程师怎么接需求?从一句「加个功能」聊到能开发、能验收
前端·后端
马可家的菠萝20 分钟前
你的微信“文件传输助手”,是不是已经成了第二个网盘?
前端·后端·架构
略略略啦20 分钟前
Vibe Coding 基于Spec DD和TDD的实践指南
前端
shmily麻瓜小菜鸡41 分钟前
前端实现图片与PDF文字识别敏感信息打码方案
前端·pdf·状态模式
打工仔折腾 AI1 小时前
LangChain 工具调用实战:从 Tool 定义到 Agent 执行链路拆解
java·前端·人工智能·后端·python·langchain·ai agent 实战
汉堡大王95271 小时前
单次输出拉到100万Token:拆完 Gemini 4 Argon 的续写协议,才看懂谷歌这7个月在憋什么
前端·人工智能·后端
看浪的路人1 小时前
第9讲:大模型应用监控与可观测性——OpenTelemetry + Prometheus + Grafana 全链路追踪
java·前端·spring
内存过载1 小时前
用表格模拟甘特图:项目排期的土办法
前端·低代码
葡萄城技术团队1 小时前
用 SpreadJS 数据验证实现省市区三级联动
前端