Vue常用指令

在vue中  v-xxx  的行内属性 我们统称为 vue指令                                                                          vue指令写在标签的行内样式上,也就是说指令是绑定在dom属性上的

v-model = '变量' 数据双向绑定 相当于 把 这个变量跟这个表单元素绑定在一起了;变量改变 表单元素的内容跟着改变,内容改变 变量也会跟着更新 

v-model修饰符

.trim  自动过滤输入的首尾空白字符

.number (对应的值使用parseFloat转成数字 能转成功的就转,不能成功就不转了)

.lazy  没有lazy的时候 vue使用的 input事件更新数据; 加上之后 用的change事件更新的数据

                                                                                                                                                         v-bind 数据单向绑定,用于动态改变标签内的属性 ,代替 v-bind:src='变量' 是专门用来处理行内属性(src class style ...)的指令 ,v-bind: 一般简写成 :

小胡子语法{{变量}}

<body>
  <div id="app">
    <!-- 
      小胡子中 只能编写表达式(变量 赋值表达式 函数执行 三元表达式)  
      不能写语句(for循环 if  switch  var ...)
      
      小胡子中最终展示出来的时那个表达式的结果
     -->
    <h1>{{hello}}</h1>
    <h2>{{str}}</h2>
  </div>


  <div>dgsdgdfh</div>
  {{hello}}
</body>
</html>
<script src="../node_modules/vue/dist/vue.js"></script>
<script>
  let vm = new Vue({
    // 当前这个对象中的属性名 都是vue规定的;
    el:'#app',// 相当于 告诉 vue ; 只处理app这个元素中的语法;不能是html或者body这两个元素
    data:{
      // 存储都是 vue变量
      // data中的属性 最终 都会被挂载到当前实例上;
      //当数据更改的时候 视图会自动更新;
      hello:'hello ',
      str:'哈哈哈'
    }
  });
</script>

v-text = '变量'   相当于小胡子语法  避免了显示 小胡子的毛病,可以将一个数据展示在一个dom的内容中( 相当于使用了 innerText)
v-html = '变量'   相当于原生的innerHTML 只在可信任的内容上使用该指令,不可用于表单用户提交;( 可以将一个数据展示在一个dom的内容中( 相当于使用了 innerHTML )


v-cloak 后边没有值  就是为了解决小胡子的显示问题;需要配合css使用;原理其实就是 当vue模板渲染之前,先渲染的是html,这时, 我们写的css样式可以起作用 让元素display none了;当模板渲染完成之后,vue会自动把这个行内属性移除,在页面上展示的就是渲染好的html了;


v-once 后边也没有值  vue对有这个指令的元素 只渲染一次;
v-pre  后边也没有值  告诉vue 这个标签及其子标签 都不用vue渲染;可以用来提升vue的编译效率

v-on    监听 DOM 事件,并在触发时运行一些 JavaScript 代码,通过v-on指令修饰click点击事件,可简写用@代替

                                                                              

v-for    相当于JS中的for in循环, 可以根据数据多次渲染元素

        <ul>
          <li v-for="(item,index) in ary" :key='index'>
            <!-- 
              item和index是自己定义的变量, 两个都写需要加上();
              item 代表 数组中的当前项
              index 是对应的索引
              这两个变量 只能用在当前使用v-for的标签上及其内部
              :key使v-bind:key的缩写,代表给每一个循环的列表添加一个唯一的标识,
             -->
            <i>{{index}}</i>:<strong>{{item}}</strong>
          </li>
        </ul>

v-show  后边跟的是一个布尔类型(其他类型会默认转成布尔值),true为显示,false相当于给元素添加了display:none 样式   

v-if    元素在指令的表达式返回 true值的时候被渲染 ,会重新进行DOM的删除和创建操作
v-else    和v-if指令搭配使用,没有对应的值。当v-if的值false,v-else才会被渲染出来                     v-else-if 必须紧跟在带 v-if或者 v-else-if 的元素之后。

当然,也可以通过<template>元素实现整体渲染,在上面使用 v-if元素最终的渲染结果并不会包含 <template>元素。

<template v-if="true">
  <h1>Title</h1>
  <p>Paragraph 1</p>
  <p>Paragraph 2</p>
</template>

         补充:在vue中使用template

<script>
    let vm = new Vue({
        // el:'#app',
        // template:'<h1>666{{name}}</h1>',// 指定当前渲染的模板,若没有这个属性 则用app作为模板
        data:{
            name:"小明",
            flag:true
        }
    }).$mount('#app');
</script>

v-if&&v-show比较

若 v-if条件判断不成立 则 整个标签都不加载  
若 v-show条件判断不成立 则 整个标签都加载 只是被display none了  
v-if 有比较大的切换开销  v-show 有比较大的初始加载开销 (如标签需要频繁切换时,推荐使用v-show)


 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值