前端第22天

vue的基本用法

使用步骤

导入vue.jsscript脚本文件

在页面中声明一个将要被vue所控制的DOM区域

创建一个vm实例对象(vue实例对象)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>1体验vue.js的基本用法</title>
</head>
<body>
  <!-- 2 声明要被vue说空着的DOM区域 -->
  <div id="app">
    {
  { username }}
  </div>
  <!-- 1 导入vue的脚本文件 -->
  <script src="lib/vue-2.6.12.js"></script>

  <!-- 3创建vue的实例对象 -->
  <script>
    const vm = new Vue({
     
      // 使用el属性指定要控制的区域
      el: '#app',
      // data指定要渲染的数据
      data: {
     
        username: 'ZS'
      }
    })
  </script>
</body>
</html>

vue的指令

指令的概念

指令是vue为开发者提供的模板语法,用于父主开发者渲染页面的基本结构

指令的六大分类

内容渲染指令

v-text:会覆盖元素默认文本内容的值

{ {}}:插值表达式,会保留文本默认内容,不会被覆盖。更常用

v-html:把带有htm标签的渲染成真正的html标签

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>内容渲染指令</title>
</head>
<body>
  <div id="app">
    <p>名字:{
  { username }}</p>
    <!-- 性别文字会被覆盖掉 -->
    <p v-text="gender">性别</p> 
    <hr>
    <p v-text="desc"></p>
    <p>{
  { desc }}</p>
    <p v-html="desc"></p>
  </div>

  <script src="./lib/vue-2.6.12.js"></script>
  <script>
    const vm = new Vue({
     
      el: '#app',
      data: {
     
        username: '张三',
        gender: '男',
        desc: '<i style="color: blue;">abc</i>'
      }
    })
  </script>
</body>
</html>
属性绑定指令

v-bind:如果需要为元素的属性动态绑定属性值,则需要用到v-bind属性绑定指令

可以简写为英文的 :

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>属性绑定指令</title>
</head>
<body>
  <div id="app">
    <input type="text" v-bind:placeholder="inputValue">
    <hr>
    <img v-bind:src="imgSrc" alt="">
  </div>
  <script src="./lib/vue-2.6.12.js"></script>
  <script>
    const vm = new Vue({
     
      el: '#app',
      data: {
     
        inputValue: '请输入内容',
        imgSrc: 'https://www.apple.com.cn/v/iphone-14/e/images/key-features/features/size/size_yellow__dnv9794q7loy_large.jpg'
      }
    })
  </script>
</body>
</html>
使用javascript表达式

在vue提供的模板渲染语法中,除了支持绑定简单的数据值之外,还支持JavaScript表达式的运算

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title></title>
</head>
<body>
  <div id="app">
    <p>{
  { number + 1 }}</p>
    <p>{
  { ok ? 'TRUE' : 'FALSE' }}</p>
    <p>{
  { message.split('').reverse().join('') }}</p>
    <p :id="'list-' + id">xxx</p>
    <p>{
  { user.name }}</p>
  </div>
  <script src="./lib/vue-2.6.12.js"></script>
  <script>
    new Vue({
     
      el: '#app',
      data: {
     
        number: 9,
        ok: '',
        message: 'ABC',
        id: 3,
        user: {
     
          name: 'ZS'
        }
      }
    })
  </script>
</body>
</html>
事件绑定指令

v-on:用来为DOM元素绑定事件监听,可以简写为@符号

事件对象 event

在原生DOM事件绑定中,可以在事件处理函数的形参处、接收事件独显evevt。通过,在v-on指令受绑定的事件处理函数,同样可以接受到事件对象event

绑定事件并传参

使用v-on指令绑定事件时,可以使用(参数, e v e n t )进行传参, event)进行传参, event)进行传参,event为事件对象占位符只能那么写

事件修饰符
事件修饰符 说明
.prevent 阻止默认行为(阻止a链接的跳转,阻止表单的提交)
.stop 阻止事件冒泡
.capture 以捕获模式触发当前的事件处理函数
.once 绑定的事件只能触发一次
.self 只有event.target是当前元素自身时触发事件处理函数
案件修饰符

监听键盘事件,.enter 和.esc 监听回车按键和 监听esc按键。只能配合键盘进行操作

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>事件绑定指令</title>
</head>
<body>
  <div id="app">
    <h3>count值为:{
  { count }}</h3>
    
    <button v-on:click="add">+1</button>
    <!-- 绑定事件传参 必须是$event -->
    <!-- .prevent阻止默认行为 -->
    <button v-on:click.prevent="addCount(2, $event)">+2</button>
    <hr>
    <input type="text" @keyup.enter="submit" @keyup.esc="clearInput">
  </div>
  <script src="./lib/vue-2.6.12.js"></script>
  <script>
    new Vue({
     
      el: '#app',
      data: {
     
        //计数器的数
        count: 0
      },
      methods: {
     
        add(e){
     
          let newBgColor = e.target.style.backgroundColor
          e.target.style.backgroundColor = newBgColor === 'red' ? '' : 'red'
          this.count++
        },
        //绑定事件传参 
        addCount(step, e) {
     
          let newBgColor = e.target.style.backgroundColor
          e.target.style.backgroundColor = newBgColor === 'blue' ? '' : 'blue'
          this.count += step
        },
        //获取文本框的最新值
        submit(e) {
     
          console.log('按下了enter键最新的值是:'+ e.target.value);
        },
        //清空文本框的内容
        clearInput(e) {
     
          console.log(e);
          e.target.value = ''
        }
      },
    })
  </script>
</body>
</html>
双向绑定指令

v-model双向数据绑定指令,用来辅助开发者在不操作DOM的前提下,快速获取表单数据

只能和表单数据一起使用!!!

v-model指令的修饰符
修饰符 作用
.number 自动键用户的输入值转换为数值类型
.trim 自动过滤用户输入的首位字符串,去除两端的空格
.lazy 在输入的时候不更新 在提交的时候更新,
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

来地球玩啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值