Vue基本语法和API

想要了解vue知识可以查看vue基础学习目录,在不定时更新中~

Vue语法-插值表达式

学习插值表达式, 在DOM中插入内容,又叫: 声明式渲染/文本插值/大胡子语法
语法: {{ 表达式 }}

 //例
    <template>
	  <div>
	    <h1>{{ msg }}</h1>
	  </div>
	</template>
	
	<script>
	export default {
	  data() { // 格式固定, 定义vue数据之处
	    return {  // key相当于变量名
	      msg: "hello, vue",
	    }
	  }
	}
	</script>
Vue指令-v-bind动态属性

给dom标签的属性设置Vue变量,对属性动态赋值

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

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

    //例
    <a v-bind:href="url">我是a标签</a>
    <img :src="imgSrc">
    
Vue指令-v-on事件绑定(事件对象)

可以给Dom标签绑定事件

  • 语法

    • v-on:事件名="methods中的函数"
    • v-on:事件名="methods中的函数(实参,$event)"
      • 无传参, 通过形参直接接收
      • 传参, 通过$event指代事件对象传给事件处理函数
  • 简写: @事件名="methods中的函数"

      ```javascript
      //例 
      <p>你要买商品的数量: {{count}}</p>
      <button v-on:click="addFn">增加1个</button>
      <button v-on:click="addCountFn(5)">一次加5件</button>
      <button @click="subFn">减少</button>
      <script>
          export default {
              // ...其他省略
              methods: {
                  addFn(){ 
                      this.count++
                  },
                  addCountFn(num){
                      this.count += num
                  },
                  subFn(){
                      this.count--
                  }
              }
          }
      </script>
      ```
    
Vue指令-v-on修饰符

vue对事件进行了修饰符设置, 在事件后面.修饰符名即可使用更多的功能

  • 语法
    • @事件名.修饰符="methods里函数"

    • .stop - 阻止事件冒泡 .prevent - 阻止默认行为

      //例
      <template>
      	  <div @click="fatherFn">
      	    <button @click.stop="btn">.stop阻止事件冒泡</button>
      	    <a href="http://www.baidu.com" @click.prevent="btn">.prevent阻止默认行为</a>
      	  </div>
      </template>
      <script>
      	export default {
      	  methods: {
      	    fatherFn(){
      	      console.log("father被触发");
      	    },
      	    btn(){
      	      console.log(1);
      	    }
      	  }
      	}
      </script>
      	```
      
Vue指令-v-model双向绑定

v-model, 把表单值和Vue变量双向绑定

  • 语法
    • v-model="vue数据变量"

    • 双向数据绑定: 数据变化 -> 视图自动同步 视图变化 -> 数据自动同步

       //v-model在表单标签使用
       <template>
        <div>
          <div>
            <span>用户名:</span>
            <input type="text" v-model="username" />
          </div>
          <div>
            <span>密码:</span>
            <input type="password" v-model="pass" />
          </div>
          <div>
            <span>来自于: </span>
            <!-- 下拉菜单要绑定在select上 -->
            <select v-model="from">
              <option value="北京市">北京</option>
              <option value="南京市">南京</option>
              <option value="天津市">天津</option>
            </select>
          </div>
           <div>
            <!-- (重要)
            遇到复选框, v-model的变量值
            非数组 - 关联的是复选框的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 {
            username: "",
            pass: "",
            hobby: [], 
            sex: "",
            intro: "",
            from: ""
          }
        }
      };
      </script>
      
Vue指令-v-model修饰符
  • 语法
    • v-model.修饰符="vue数据变量"
      • .number 以parseFloat转成数字类型
      • .trim 去除首尾空白字符
      • .lazy 在change时触发而非inupt时
Vue指令-v-html

v-html, 设置内容,会覆盖插值表达式

  • 语法
    • v-html="vue数据变量"
      //例
      <template>
        <div>
          <p v-html="str"></p>
        </div>
      </template>
      
      <script>
      export default {
        data() {
          return {
            str: "<span>我是一个span标签</span>"
          }
        }
      }
      </script>
      
Vue指令-v-show和v-if

控制标签显示或隐藏

  • 语法
    • v-show="vue变量"
    • v-if="vue变量"
  • 原理
    • v-show 用的display:none隐藏 (频繁切换使用)
    • v-if 直接从DOM树上移除
    <template>
      <div>
        <h1 v-show="isOk">v-show的盒子</h1>
        <h1 v-if="isOk">v-if的盒子</h1>
        <div>
        //v-if 和 v-else相对使用,不满足v-if就执行v-else语句
          <p v-if="age > 18">我成年了</p>
          <p v-else>还得多吃饭</p>
        </div>
      </div>
    </template>
    <script>
    export default {
      data() {
        return {
          isOk: true,
          age: 15
        }
      }
    }
    </script>
    
Vue指令-v-for

v-for, 用数据循环生成标签

  • 语法
    • v-for="(值变量, 索引变量) in 目标结构"
    • v-for="值变量 in 目标结构"
  • 目标结构:
    • 可以遍历数组 / 对象 / 数字 / 字符串
  • 注意:
    v-for的临时变量名不能用到v-for范围外
    同级标签的key值不能重复
vue基础_动态class

用v-bind给标签class设置动态的值

  • 语法
    • :class="{类名: 布尔值}"
vue基础_动态style

给标签动态设置style的值

  • 语法
    • :style="{css属性: 值}"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值