Vue学习01

01.什么是Vue

vue是一个用户构建用户界面的渐进式框架。

02.创建Vue实例,初始化渲染

初始化渲染核心4步骤:

  1. 准备容器

  2. 引包(官网) — 开发版本/生产版本

  3. 创建Vue实例 new Vue()

  4. 指定配置项,渲染数据

    <div id="app">
        <!-- 编写用于渲染的代码逻辑 -->
        {{ msg }}
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
    <script>
        const app=new Vue({
            // 通过el配置选择器,指定vue管理的是哪个盒子
            el:'#app',
            data:{
                msg:'Hello Vue'
            }
        })
    </script>

03.Vue指令

带有v-前缀的特殊标签

vue 中的指令按照不同的用途可以分为如下 6 大类:

  • 内容渲染指令(v-html、v-text)

  • 条件渲染指令(v-show、v-if、v-else、v-else-if)

  • 事件绑定指令(v-on)

  • 属性绑定指令 (v-bind)

  • 双向绑定指令(v-model)

  • 列表渲染指令(v-for)

<div v-html="str"></div>
  • v-html(类似 innerHTML)
    • 使用语法:<p v-html="intro">hello</p>,意思是将 intro 值渲染到 p 标签中

    • 类似 innerHTML,使用该语法,会覆盖 p 标签原有内容

    • 类似 innerHTML,使用该语法,能够将HTML标签的样式呈现出来。

    <div id="app">
        <div v-html="msg"></div>
        <div v-html="intro"></div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
    <script>
         const app=new Vue({
            // 通过el配置选择器,指定vue管理的是哪个盒子
            el:'#app',
            data:{
                msg:'Hello Vue',
                intro:'<h1>学前端</h1>'
            }
        })
    </script>
v-show
  1. 作用: 控制元素显示隐藏

  2. 语法: v-show = "表达式" 表达式值为 true 显示, false 隐藏

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

  4. 场景:频繁切换显示隐藏的场景

v-if
  1. 作用: 控制元素显示隐藏(条件渲染)

  2. 语法: v-if= "表达式" 表达式值 true显示, false 隐藏

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

  4. 场景: 要么显示,要么隐藏,不频繁切换的场景

v-else 和 v-else-if
  1. 作用:辅助v-if进行判断渲染

  2. 语法:v-else v-else-if="表达式"

  3. 需要紧接着v-if使用

      <div id="app">
        <p v-if="gender===1">性别:♂ 男</p>
        <p>性别:♀ 女</p>
      </div>
      <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
      <script>
        const app = new Vue({
          el: '#app',
          data: {
            gender: 2
          }
        })
      </script>
v-on     

    使用Vue时,如需为DOM注册事件,及其的简单,语法如下:

  • <button v-on:事件名="内联语句">按钮</button>

  • <button v-on:事件名="处理函数">按钮</button>

  • <button v-on:事件名="处理函数(实参)">按钮</button>

  • v-on: 简写为 @

     <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/dist/vue.js"></script>
      <script>
        const app = new Vue({
          el: '#app',
          data: {
            count: 100
          }
        })
      </script>
 <div id="app">
        <button @click="fn">切换显示隐藏</button>
        <h1 v-show="isShow">学习Vue</h1>
      </div>
      <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
      <script>
        const app = new Vue({
          el: '#app',
          data: {
            isShow: true
          },
          methods:{
            fn(){
                app.isShow=!app.isShow
            }
          }
        })
      </script>

vue指令v-on调用传参

<button @click="fn(参数1,参数2)">按钮</button>
<script>
        const app=new Vue({
            el:'#app',
            methods:{
                fn(a,b){
                    console.log('这是一个fn函数')
                }
            }
        })
    </script>
<div id="app">
        <div class="box">
          <h3>小黑自动售货机</h3>
          <button @click="buy(5)">可乐5元</button>
          <button @click="buy(10)">咖啡10元</button>
          <button @click="buy(8)">牛奶8元</button>
        </div>
        <p>银行卡余额:{{ money }}元</p>
      </div>
    
      <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
      <script>
        const app = new Vue({
          el: '#app',
          data: {
            money: 100
          },
          methods:{
            buy(price){
                this.money-=price
            }
          }
        })
      </script>
v-bind
  1. 作用:动态设置html的标签属性 比如:src、url、title

  2. 语法v-bind:属性名=“表达式”

  3. v-bind:可以简写成 => :

 v-for

    v-for 指令需要使用 (item, index) in arr 形式的特殊语法,其中:

  • item 是数组中的每一项

  • index 是每一项的索引,不需要可以省略

  • arr 是被遍历的数组

     <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/dist/vue.js"></script>
      <script>
        const app = new Vue({
          el: '#app',
          data: {
            list: ['西瓜', '苹果', '鸭梨', '榴莲']
          }
        })
      </script>

v-for中的key 

语法: key="唯一值"

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

为什么加key:Vue 的默认行为会尝试原地修改元素(就地复用

<ul>
  <li v-for="(item, index) in booksList" :key="item.id">
    <span>{{ item.name }}</span>
    <span>{{ item.author }}</span>
    <button @click="del(item.id)">删除</button>
  </li>
</ul>
v-model

给表单元素(input、radio、select)使用,双向绑定数据,可以快速 获取 或 设置 表单元素内容

<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 src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
      <script>
        const app = new Vue({
          el: '#app',
          data: {
            username: '',
            password: ''
          },
          methods:{
            login(){

            },
            reset(){
                this.username='',
                this.password=''
            }
          }
        })
        
      </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值