vue - 指令1

目录

使用Vue

el作用;

$mount ;

methods;

data;

computed(计算属性);

插值语法;(mustache语法)

  指令:


参考笔记:vue学习笔记(超详细)_vue笔记_fmk1023的博客-CSDN博客


使用Vue

开始使用Vue

    引入vue.js

 官网:vuejs.org

        开发版本:包含完整的警告和调试模式;

生产版本:删除了警告,体积更小

引入vue.js后,给我们提供了一个构造函数 Vue

    在js中,new Vue()

    new Vue() 后会返回一个vue实例对象,我们用变量接着它

    const vm = new Vue()

    传递一个配置对象{ }    const vm = new Vue({})

el作用;

el:

类型: 字符串

全称:element(元素)

作用:配置控制的元素,表示Vue要控制的区域,值为css选择器; 挂载点

  <!-- 被Vue控制的区域,我们称之为模板 -->
  <div id="app"></div>


const vm = new Vue({
    el: '#app' // 控制id为app的元素
  })

等价与

const vm = new Vue({})
  vm.$mount('#app');

$mount ;

作用和el一致,都是配置控制的元素,使用哪个都可以,二选一

methods;

methods:{ }

类型:对象{ },

里面是一些方法,是一些函数 ;比如点击事件的方法;

在dom中调用methdos方法需要加();例如

    <h2>{{getFullname()}}</h2>

当一个对象里的方法是一个函数的时候可以省略 : function, 直接 方法名( ){ }

data;

  • data:{ }

  • 类型:对象;是一个对象

  • 作用:存放要用到的数据 ];vue所管理的数据; 数据为响应式的

 const vm = new Vue({
    el: '#app',
    data: {
      'msg': 'hello world'
    }
  })

computed(计算属性);

computed:{ }

类型: 对象;{ }

能够在里面写一些计算逻辑的属性, 每个计算属性都包含一个getter和一个setter;只用get来获取,set不常用;

里面是一些方法函数; 在dom中调用的时候不用加();

计算属性是一个属性,不是一个函数,所以函数起名字的时候要用名词;

修改计算属性的值
直接修改计算属性的值报错,在computed中定义get和set方法,在修改计算属性中的值

    <h1>{{gteName}}</h1>

computed:{
        FinallyName:function(){
          return this.firstName + ' ' + this.lastName
        }
      }

计算属性和methdos方法:

计算属性会进行缓存,如果多次使用时,计算属性只会调用一次,效率更高。

当使用方法时,每一次页面重新渲染,对应的方法都会重新执行一次。

插值语法;(mustache语法)

  • 使用方法: {{ }} ; 双大括号

  • 可以将vue中的数据填在插值表达式中,如:

  <div id="app">{{ msg}}</div>


  const vm = new Vue({
    el: '#app',
    data: {
      msg: 'hello world'
    }
  })
  • 插值表达式中可以进行简单的计算 ;
  • 插值表达式中使用了数据,必须在data中声明过,否则会报错;
  • null 和 undefined 的数据类型不会显示;
  • 使用了未被声明过的数据,不显示,不报错;

  指令:

是带有 v- 前缀的特殊属性 ;

指令可以直接使用data中的数据;

v-once

v-once指令 : 只会渲染一次;

就是一个指令没有 = 表达式 ;

 <p v-once>{{dog}}</p>

 v-pre

跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。

不解析插值语法;不跟表达式

<!-- 不会被编译 -->
<span v-pre>{{ msg }}</span>

v-html

会解析标签;类似于插值语法;

v-html可以解析标签,更改元素的innerHTML,性能比v-text较差

后面跟表达式,直接写data中的数据;

  <p v-html="baidu"></p>

data:{
        baidu:'<a href="http://www.baidu.com.cn">百度</a>',
        
      }

v-text

 后面直接跟表达式

不会解析标签;类似于插值语法;等价与{{}} 语法;

  v-text 优先级高于 {{ }}语法;

v-text会指定将模板内元素的textContent属性替换为指令值所代表的数据

<span v-text="msg"></span>

v-cloak 斗篷

可以解决闪烁的问题;

不跟表达式;

给模板内的元素添加v-cloak属性后,元素在vue没有加载完的时候就有这个属性,当vue加载完成后这个属性就消失了,所以我们可以给这个属性设置css样式为隐藏 ;

解析完之前有一个v-cloak属性,解析完之后就消失了,css样式就没用了;

和 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕;

 <style>
    [v-cloak]{
        display:none
    }
 </style>

<!-- {{ message }}不会显示,直到编译结束 -->
<div v-cloak>
  {{ message }}
</div>

v-bind 属性绑定

需要动态决定标签的属性的时候,可以使用到v-bind;

可以使用data中的数据了;

后面跟表达式: 可以简写

v-bind:  简写 :

<!--普通写法-->
 <img v-bind:src="imageUrl"/>
data里的数据:
imageUrl:"https://www.baidu.com"

v-bind绑定class: 对象方法;

:class = "{类名1:boolean,类名2:boolean}"

只有当布尔值为真的时候,类名才会添加到class中去, 布尔值可以写成一个变量,放在date数据中进行true和false的切换;

<h2 :class="{ key : true, key1 : false}">{{site}}</h2>
当value值为true的时候才会添加到class里面
用法一:直接通过{}绑定一个类
<h2 :class="{ 'active': isActive}">hello world</h2>

用法二:直接通过判断,传入多个值,
<h2 :class="{'active': isActive,'line': isLine}">hello world</h2>

用法三:和普通的类同时存在,并不冲突
<h2 class="title" :class="{'active': isActive,'line': isLine}">hello world</h2>

用法四:如果过于复杂,可以放在一个methods或者computed中
<h2 class="title" :class="getClasses()">hello world</h2>

 v-bind动态绑定class:数组语法.

<h2 :class="['active','line]">hello world</h2>

在数组语法总可以使用三元表达式来切换class

<div v-bind:class="[isActive ? activeClass : '']"></div>

isActive为真,使用activesClass;

isActive为假,使用 ' '

 v-bind动态绑定内联样式 style 方法

对象语法

<h2 :style="{'key(属性名)': value(属性值)}">hello world</h2>
//如果有-的属性需要加单引号 也可以使用驼峰命名  后面属性如果不是变量需要用单引号 
<h2  :style="{'font-size':'50px'}">{{site}}</h2>
<h2  :style="{fontSize:'50px'}">{{site}}</h2>
<h2  :style="{fontSize:finalSize}">{{site}}</h2>

v-on 事件监听/事件绑定

v-on: 后面跟事件名的表达式

v-on: 简写 @

方法即事件的处理函数;

  1. 方法不需要传参数时,方法名可以省略(),也可以不省略;
  2. 方法名不传参数时,但是方法有参数传入,默认将event事件传入
  3.     <button v-on:click="reduce">--</button>
    
        methods: {
            reduce(a){
              console.log(a);
              this.counter--
            }
          },
  4.     如果需要同时传入某个参数,同时需要event时,可以通过$event传入事件;
  5.     <button v-on:click="reduce(66,$event)">--</button>
    
        methods: {
            reduce(num,event){
              console.log(num,event);
              this.counter--
            }
          },

v-on:事件名 = “方法名”   ==> @事件名 = "方法名"

  <button @click="add">++</button>
  <button v-on:click="reduce">--</button>

方法写在: methods:{ } 配置项内

 methods: {
        add(){
          this.counter++
        },
        reduce(){
          this.counter--
        }
      },

v-on修饰符:

  • .stop 阻止事件冒泡;
  • .prevent 阻止事件的默认行为;
  • .once  只触发一次
  • .self  只会在自身上触发
  • 键盘事件的修饰符 监听某个键帽   .enter = .13

 //阻止事件冒泡
<span @click.stop="btn2">btn2</span>

//阻止默认行为
<span @click.prevent="btn2">btn2</span>

//只触发一次
<button @click.once="hello">点击</button>

//只会在自身上触发
 <ul @click.self="btn1">
 <li  @click="btn2"></li>

//键盘事件的修饰符
<input type="text" @keyup.enter="keyup">

<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值