美文网首页工作生活
Vue指令的学习(更新中)

Vue指令的学习(更新中)

作者: billzheng | 来源:发表于2019-07-01 18:12 被阅读0次

1.v-cloak 和 v-text
(1)使用v-clock 能够解决 插值表达式 闪烁的问题
(2)v-text主要用来更新textContent,可以等同于JS的text属性。默认 v-text 是没有闪烁问题的,v-text会覆盖元素中原本的内容,但是 插值表达式 只会替换自己的这个站位符,不会把整个元素的内容覆盖。
注:闪烁问题是指:在页面加载缓慢是出现闪烁,会出现以下内容

+++ {{msg}}++++

<div id="app">
    <p v-cloak>+++ {{msg}}++++ <p>
    <p v-text="msg">++++++++++</p>  
</div>
<script type="text/javascript">
    new Vue({
      el:'#app',
      data:{
      msg:'hello world'
    }
  })
</script>
效果图

2.v-html
双大括号的方式会将数据解释为纯文本,而非HTML。为了输出真正的HTML,可以用v-html指令。它等同于JS的innerHtml属性。

    <div id="app">
        <p v-html="msg">1111<p>
    </div>
        <script src="vue.min.js"></script>
    <script type="text/javascript">
        new Vue({
          el:'#app',
          data:{
            msg:'<h1>hello world</h1>'
          }
        })
    </script>

这个div 中 p 的内容将会替换成属性值msg,直接作为HTML进行渲染。


效果图

3.v-bind
v-bind用来动态的绑定一个或者多个属性。没有参数时,可以绑定到一个包含键值对的对象。常用于动态绑定class和style。以及href等。
简写为一个冒号【 :】

    <div id="app">
        <input type="button" value="按钮" :title="mytitle">
    </div>
        <script src="vue.min.js"></script>
    <script type="text/javascript">
        new Vue({
          el:'#app',
          data:{
            msg:'<h1>hello world</h1>',
            mytitle:'绑定属性title'
          }
        })
    </script>
效果图

4.v-on
v-on主要用来监听dom事件,以便执行一些代码块。表达式可以是一个方法名。
简写为:【 @ 】

    <div id="app">
        <input type="button" value="按钮" :title="mytitle" v-on:click="show">
    </div>
        <script src="vue.min.js"></script>
    <script type="text/javascript">
        new Vue({
          el:'#app',
          data:{
            msg:'<h1>hello world</h1>',
            mytitle:'绑定属性title'
          },
          methods:{
            show:function(){//简写show(){}
                alert('hello world')
            }
          }
        })
    </script>

事件修饰符

  • stop 阻止事件继续传播,阻止事件冒泡
  • prevent 事件不再重载页面
  • capture 使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理
  • self 只当在 event.target 是当前元素自身时触发处理函数
  • once 事件将只会触发一次
  • passive 告诉浏览器你不想阻止事件的默认行为
<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>

<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>

<!-- 点击事件将只会触发一次 -->
<a v-on:click.once="doThis"></a>

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 -->
<!-- 而不会等待 `onScroll` 完成  -->
<!-- 这其中包含 `event.preventDefault()` 的情况 -->
<div v-on:scroll.passive="onScroll">...</div>

汇总:使用以上指令做个小demo,跑马灯效果制作


5.v-model
实现表单元素的数据双向绑定(唯一能实现双向数据绑定的指令),v-model只能应用在表单元素中(form fieldset legend label input textarea button select option)。

    <div id="app">
        <!-- 输入框 -->
        <input type="text" v-model="msg">
        <p>看变化:{{msg}}</p><br>
        <!-- 复选框 -->
        <input type="checkbox" v-model="checked">
        <label for="checkbox">{{ checked }}</label><br>
        <!-- 多行文本 -->
        <textarea v-model="msg" placeholder="add multiple lines"></textarea><br>
        <!-- 多个复选框,绑定到同一个数组 -->
        <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
        <label for="jack">Jack</label>
        <input type="checkbox" id="john" value="John" v-model="checkedNames">
        <label for="john">John</label>
        <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
        <label for="mike">Mike</label>
        <span>Checked names: {{ checkedNames }}</span><br>
        <!-- 单选框 -->
        <input type="radio" id="one" value="One" v-model="picked">
        <label for="one">One</label><br>
        <input type="radio" id="two" value="Two" v-model="picked">
        <label for="two">Two</label><br>
        <span>Picked: {{ picked }}</span><br>
        <!-- 下拉选择框 -->
        <select v-model="selected">
            <option disabled value="">请选择</option>
            <option>A</option>
            <option>B</option>
            <option>C</option>
            </select>
        <span>Selected: {{ selected }}</span><br>
    </div>
    <script src="vue.min.js"></script>
    <script type="text/javascript">
        new Vue({
          el:'#app',
          data:{
            msg:'hello world',
            mytitle:'绑定属性title',
            checked:true,
            checkedNames:[],
            picked:'',
            selected:'',
          }
        })
    </script>

小项目练习:使用v-model实现计算器的demo


6.Vue通过属性绑定为元素设置class类样式
7.Vue中通过属性绑定为元素绑定style行内样式
8.v-for循环普通数组
9.v-for循环复杂数组
10.v-for循环对象
11.v-for迭代数字
12.v-for循环中key属性的应用

相关文章

  • Vue指令的学习(更新中)

    1.v-cloak 和 v-text(1)使用v-clock 能够解决 插值表达式 闪烁的问题(2)v-text...

  • vue学习

    vue 1.1 vue指令 1.1.1 v-text 详情:更新元素的 textContent。如果要更新部分的 ...

  • vue指令概览

    大纲 1、什么是vue指令2、向指令中传入参数3、指令中带入修饰符4、指令的缩写5、常见的vue指令5.1、v-m...

  • vue指令概览

    原文 博客原文 大纲 1、什么是vue指令2、向指令中传入参数3、指令中带入修饰符4、指令的缩写5、常见的vue指...

  • vue3.0 指令 v-xxx

    什么是vue指令: 比如Angular中的 ng-xxx。 vue中以 v-xxx 开头人们称它为指令。 在vue...

  • Vue-02:

    一.Vue的指令: 分为两大类;内置指令和自定义指令;今天我们就来学习一下Vue的内置指令; 1.>v-for :...

  • Vue实例-2

    数组更新 变异方法 Vue内置指令 v-text:更新元素的 textContent。如果要更新部分的 textC...

  • vue笔记-06(指令-自定义指令 )

    自定义指令vue中的所有指令在调用的时候都以“v-”开头定义指令:Vue.directive(name,obj),...

  • Vue基础篇(四)

    本教程分为三部分 : 基础 进阶 实战 ,深入浅出Vue.js基础篇持续 更新中 第五章 Vue.JS中的内置指令...

  • Vue 学习笔记入门篇 vueJS中的内置指令

    Vue 学习笔记入门篇 vueJS中的内置指令 5.1 基本指令 5.1.1 v-­cloak一般与display...

网友评论

    本文标题:Vue指令的学习(更新中)

    本文链接:https://www.haomeiwen.com/subject/oyypcctx.html