vue基础语法一

目录

一、插值表达式

二、改变标签原生属性值  v-bind

 三、事件绑定 v-on

四、事件对象

五、v-on事件修饰符

六、键盘修饰符

七、v-model

1.基础使用--用户名和密码

2.更多用法--下拉列表、复选框、单选框、文本域

 3.v-model修饰符

八、文本域

九、v-if和v-show---元素隐藏


一、插值表达式

改变标签内容:声明式渲染/文本插值

语法: {{ 表达式 }}

在App.vue中

<template>
  <div>
    <h1>{{msg}}</h1>
    <h2>{{obj.name}}</h2>
    <h3>{{obj.age >= 18?"成年了":"未成年"}}</h3>
  </div>
</template>

<script>
export default {
  data(){
    return{
      msg:"Hello vue",
      obj:{
        name:"vue",
        age:5

      }
    }
  }
}
</script>

<style>

</style>

 

二、改变标签原生属性值  v-bind

⚫ v-bind语法和简写

     ⚫ 语法:v-bind:属性名="vue变量"

     ⚫ 简写::属性名="vue变量"

<template>
  <div>
    <!-- 值: 标签元素属性傻瓜的值 -->
    <!-- 语法:v-bind:原生属性名="vue变量" -->
    <a v-bind:href="url">点击去百度</a>
    <!-- 语法:原生属性名="vue变量名" -->
    <img :src="imgUrl" >
  </div>
</template>

<script>
export default {
  data(){
    return{
      url:"http://www.baidu.com",
      imgUrl:"//img20.360buyimg.com/seckillcms/s144x144_jfs/t1/160672/19/30192/99154/63106304Eeb1506fc/10381e35d4d75b9d.jpg!q70.jpg.avif"
    }
  }
}
</script>

<style></style>

 三、事件绑定 v-on

目标:给标签绑定事件

⚫ 语法

   ⚫ v-on:事件名=“要执行的少量代码"

   ⚫ v-on:事件名=“methods中的函数名"

   ⚫ v-on:事件名=“methods中的函数名(实参)"

⚫简写

   ⚫ @事件名=“methods中的函数”

<template>
  <div>
    <p>要购买的商品数量:{{ count }}</p>
    <!-- 1.绑定事件 -->
    <!-- 语法:v-on:事件名="少量代码" -->
    <button v-on:click="count++">+1</button>

    <!-- 语法:v-on:事件名="methods里的函数名" -->
    <button v-on:click="addFn">+1</button>

    <!-- 语法:v-on:事件名="methods里的函数名(值)" -->
    <button v-on:click="addCountFn(5)">+5</button>

    <!-- 语法:@时间名 = "methods里的函数名" -->
    <button @click="subFn">-1</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 1,
    };
  },
  methods: {
    addFn() {
      //this代表export default后{}对象,data和methods里的属性都直接挂他身上
      this.count++;
    },
    addCountFn(num) {
      this.count += num;
    },
    subFn(){
      this.count--
    }
  },
};
</script>

<style></style>

四、事件对象

⚫ 语法

    ⚫ 无传参, 通过形参直接接收

    ⚫ 传参, 通过$event指代事件对象传给事件处理函数

<template>
  <div>
    <!-- 无传参,直接在形参接收 -->
    <a @click="one" href="http:www.baidu.com">百度</a>
  <hr>
    <!-- 有传参,手动再加入一个参数$event -->
    <a @click="two(10,$event)"  href="http:www.taobao.com">淘宝</a>
  </div>
</template>

<script>
export default {
   methods: {
     one(e){
      e.preventDefault()
     },
     two(num,e){
      e.preventDefault()
     }
   }
}
</script>

<style>

</style>

五、v-on事件修饰符

目标:在事件后面.修饰符名 - 给事件带来更强大的功能

⚫ 语法

   ⚫ @事件名.修饰符="methods里函数"

⚫ 修饰符列表

   ⚫ .stop - 阻止事件冒泡

   ⚫ .prevent - 阻止默认行为

   ⚫ .once - 程序运行期间, 只触发一次事件处理函数

<template>
  <div>
    <div @click="fatherFn">
      <p @click.stop="oneFn">.stop - 阻止事件冒泡</p>
      <a href="http://www.baidu.com" @click.prevent.stop>阻止默认行为和冒泡</a>
      <p @click.once="twoFn">只触发一次事件处理函数</p>
    </div>
  </div>
</template>

<script>
export default {
  methods: {
    fatherFn() {
      console.log("father-触发了click事件");
    },
    oneFn() {
      console.log("p标签被点击了");
    },
    twoFn() {
      console.log("p标签被点击了");
    },
  },
};
</script>

<style></style>

六、键盘修饰符

目标:给键盘事件, 添加修饰符, 增强能力

⚫ 语法:

    ⚫ @keyup.enter - 监测回车按键

    ⚫ @keyup.esc - 监测返回按键

<template>
  <div>
    <!-- 绑定键盘按下事件.enter 回车 -->
    <input type="text" @keydown.enter="enterFn" />
    <hr>
    <!-- 绑定键盘退出事件.esc 取消键 -->

    <input type="text" @keydown.esc="escFn" />
  </div>
</template>

<script>
export default {
  methods: {
    enterFn(){
      console.log("用户按下回车");
    },
    escFn(){
      console.log("用户按下esc");
    }
  },
};
</script>

<style></style>

七、v-model

1.基础使用--用户名和密码

⚫ 语法: v-model="Vue数据变量"

    ⚫ 双向数据绑定

    ⚫ 变量变化 -> 视图自动同步

    ⚫ 视图变化 -> 变量自动同步

<template>
  <div>
    <div>
      <span>用户名</span>
      <input type="text" v-model="username" />
    </div>
    <div>
      <span>密码</span>
      <input type="text" v-model="pass" />
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username:"",
      pass:""
    }
  },

};
</script>

<style></style>

2.更多用法--下拉列表、复选框、单选框、文本域

<template>
  <div>
    <div>
      <!-- 下拉列表:绑定再select上-->
      <span>来自于:</span>
      <select v-model="from">
        <option value="北京市">北京</option>
        <option value="南京市">南京</option>
        <option value="天津市">天津</option>
      </select>
    </div>
    <div>
      <!-- 复选框
      v-module的变量值
      非数组:关联的是复选框的checked属性
      数组:关联的是复选框value属性
       -->
      <span>爱好:</span>
      <input type="checkbox" v-model="hobby" value="抽烟" />抽烟
      <input type="checkbox" v-model="hobby" value="喝酒" />喝酒
      <input type="checkbox" v-model="hobby" value="烫头" />烫头
    </div>
    <div>
      <!-- 单选框 -->
      <span>性别:</span>
      <input type="radio" value="男" name="sex" v-model="gender" />男
      <input type="radio" value="女" name="sex" v-model="gender" />女
    </div>
    <div>
      <!-- 文本域 -->
      <span>自我介绍:</span>
      <textarea v-model="intro"></textarea>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      from: "",
      hobby: [],
      gender: "",
      intro:""
    };
  },
};
</script>

<style></style>

 3.v-model修饰符

⚫ 语法: v-model.修饰符="Vue数据变量"

     ⚫ .number 以parseFloat转成数字类型

     ⚫ .trim 去除首尾空白字符

     ⚫ .lazy 失去焦点内容改变时(onchange事件), 把内容同步给v-model的变量

<template>
  <div>
    <div>
      <span>年龄</span>
      <!-- number修饰符--把值parseFloat转数值再赋予给v-model对应的变量 -->
      <input type="text" v-model.number="age" />
    </div>
    <div>
      <span>人生格言</span>
      <!-- .trim修饰--去除首尾两边空格 -->
      <input type="text" v-model.trim="motto" />
    </div>
    <div>
      <span>个人简介</span>
      <!-- lazy修饰符--失去焦点内容改变时(onchange事件), 把内容同步给v-model的变量 -->
      <textarea v-model.lazy="intro"></textarea>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      age: 0,
      motto: "",
      intro: "",
    };
  },
};
</script>

<style></style>

八、文本域

注意:尽量少用v-html

九、v-if和v-show---元素隐藏

语法:v-show / v-if="布尔值或布尔运算"

当为false时,元素被隐藏

<template>
  <div>
   <!-- 
    v-show隐藏:dispaly:none  //频繁切换
    v-if :从DOM元素移除
    -->
      <p v-show="isShow">v-show控制元素</p>

      <!-- v-if和v-show之间不能有其他标签 -->
      <p v-if="age >= 18">已成年</p>
      <p v-else>未成年</p>
   
  </div>
</template>

<script>
export default {
  data() {
    return {
      isShow: false,
    
      age: 18,
    };
  },
};
</script>

<style></style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值