vue知识整理—03-指令(代码片段)

zhangyan1205 zhangyan1205     2022-12-14     415

关键词:

指令:增强元素标签的功能

1.  v-text  &  v-html

相同点:

  作用:都是替换使用该指令的元素的内容

区别:

  v-text 是文本输出,显示的格式字符串形式

  v-html 是 html 格式输出

       注意:尽量避免使用,容易造成危险 (XSS跨站脚本攻击)
   <div id="app">
        <!-- v-text指令的值会替换标签内容 -->
        <p>str</p>
        <p v-text="str"></p>
        <p v-text="str">我是p标签中的内容</p>
        <p v-text="strhtml">我是p标签中的内容</p>
        <p v-html="str"></p>
        <!-- v-html指令的值(包括标签字符串)会替换掉标签的内容 -->
        <p v-html="strhtml">我是p标签中的内容</p>
    </div>
    <script src="./vue.js"></script>
    <script>
        new Vue(
            el: ‘#app‘,
            data: 
                str: ‘abc‘,
                strhtml: ‘<span>content</span>‘
            
        );
    </script>
2.  v-if  &  v-show
相同点:
  切换元素的显示和隐藏(根据表达式的 bool 值判断是否要渲染)
区别:
  v-if 是移除 添加
  v-show 是显示和隐藏  display:none
使用场景:
  v-if 需要一次渲染的时候
  v-show 频繁切换的时候使用

  (v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。)

<div id="app">
  <!-- 作用:条件渲染 -->
  <!-- v-if  通过 移除  添加 一个元素 -->
  <div v-if="flag" class="text-danger">v-if</div>
  <div v-else>v-else</div>

  <!-- v-show 通过 元素的样式 display:none 控制 显示和隐藏 -->
  <div v-show="flag" class="text-success">v-show</div>

  <!--使用场景:v-if 会频繁创建和移除元素  v-show 控制显示和隐藏  -->
</div>
<script>
  var vm = new Vue(
    el: ‘#app‘,
    data: 
      flag: true
    ,
    methods: 
  )
</script>

 

3.  v-on

作用:

  在 vue 中使用 v-on 指令绑定 DOM 事件,并在事件被触发时执行一些 JavaScript 代码。

语法:

  v-on : 事件名.事件修饰符 = “ fn ( ) ” v-on 可以简写为 @

    说明:fn ( ) 是 methods 中的方法名

 注意:如果需要使用事件对象,固定写法 $ event

事件修饰符:prevent  once 

  • . once - 只触发一次回调。

  • . prevent - 调用 event.preventDefault()

p<div id="app">
        <!-- v-on:xx事件名=‘当触发xx事件时执行的语句‘ -->
        <!-- 执行一段js语句:可以使用data中的属性 -->
        <button v-on:click="count += 1">增加 1</button>
        <!-- v-on的简写方法 -->
        <button @click="count += 1">增加 1</button>
        <!-- 执行一个方法 -->
        <button @click="add">增加 1</button>
        <!-- 执行一个方法、这种写法可以传形参 -->
        <button @click="fn1(count)">执行fn1方法</button>
        <!-- 执行一个方法、这种写法可以传形参,特殊的形参$event -->
        <button @click="fn2($event)">执行fn2方法</button>
        <hr>
        <!-- 和v-for结合使用 -->
        <button @click="fn3(index)" v-for="(item, index) in items">执行fn3方法</button>
        <!-- v-on修饰符 如 once: 只执行一次 -->
        <button @click.once="fn4">只执行一次</button>

        <p>上面的按钮被点击了  count  次。</p>
    </div>
    <script src="./vue.js"></script>
    <script>
        new Vue(
            el: ‘#app‘,
            data: 
                count: 0,
                items: [‘a‘, ‘b‘, ‘c‘]
            ,
            methods: 
                add: function() 
                    this.count += 1;
                ,
                fn1: function(count) 
                    console.log(count);
                    console.log(‘fn1方法被执行‘);
                ,
                fn2: function(e) 
                    console.log(e);
                    console.log(‘fn2方法被执行‘);
                ,
                fn3: function(index) 
                    console.log(index);
                    console.log(‘fn3方法被执行‘);
                ,
                fn4: function() 
                    console.log(‘fn4方法被执行了‘);
                
            
        );
    </script>

 

4. v-bind

作用:可以绑定标签上的任何属性

语法:v-bind:属性名称=“数据名称” 简写 v-bind 去掉即可#### 绑定src和id属性

html
  <div id="app">
        <!-- data中的属性值会替换为标签的属性值 -->
        <img v-bind:src="src" />
        <p v-bind:id="idValue">内容</p>
    </div>
    <script src="./vue.js"></script>
    <script>
        var vm = new Vue(
            el: ‘#app‘,
            data: 
                src: ‘./logo.png‘,
                idValue: ‘b‘
            
        );
    </script>

#### 绑定class类名

对象语法和数组语法

##### 对象语法

如果isActive为true,则返回的结果为 `<div class="active"></div>`

css
 .active 
            color: red;
 


html
 <div id="app">
        <div v-bind:class="active: isActive">
            hei
        </div>
        <button @click="changeClassName">点击切换类名</button>
    </div>

js
  <script src="./vue.js"></script>
    <script>
        var vm = new Vue(
            el: ‘#app‘,
            data: 
                isActive: true
            ,
            methods: 
                changeClassName: function() 
                    this.isActive = !this.isActive;
                
            
        );
    </script>

##### 数组语法

渲染的结果 `<div class="active text-danger"></div>`

html
<div v-bind:class="[activeClass, dangerClass]">
    hei
</div>
  <script src="./vue.js"></script>
<script>
    var vm = new Vue(
        el: ‘#app‘,
        data: 
            activeClass: ‘active‘,
            dangerClass: ‘text-danger‘
        
    );
</script>


#### 绑定style

对象语法和数组语法

##### 对象语法

渲染的结果<div style="color: red; font-size: 18px;"></div>

html
 <div id="app">
        <div v-bind:style="color: redColor, fontSize: font18 + ‘px‘">
            文本内容
        </div>
    </div>
    <script src="./vue.js"></script>
    <script>
        var vm = new Vue(
            el: ‘#app‘,
            data: 
                redColor: ‘red‘,
                font18: 18
            
        );
    </script>
##### 数组语法

html
<div v-bind:style="[color, fontSize]">abc</div>
<script>
    var vm = new Vue(
        el: ‘#app‘,
        data: 
            color: 
                color: ‘red‘
            ,
            fontSize: 
                ‘font-size‘: ‘18px‘
            
        
    );
</script>
#### 简化语法

html
<div v-bind:class="active: isActive">
</div>
<!-- 可以简化为 :,简化语法更常用 -->
<div :class="active: isActive">
</div>

 

5.

 

vue知识整理—03-指令2

一:属性:el:‘’   //要控制页面上的那个区域data://存放el中要用到的数据methods://(对象)定义vue实例中的可用方法 二:指令:1.v-cloak解决插值表达式的闪烁问题2.v-text  (和插值表达式类似)... 查看详情

vue基础知识整理(代码片段)

实例-vue是由实例组成的根实例组件也是实例以$开头的单词都是代表着vue的实例属性实例方法vue实例中的生命周期钩子8个生命周期函数这几个函数不用放到methods里面计算属性尽量使用计算属性而不是watch!可以配合着计算属性使... 查看详情

vue全部知识点整理(代码片段)

vue是什么以数据驱动为视图的渐进式MVVM框架。渐进式:循序渐进的使用vue,可选择性强,可以只使用vue的小功能,不必完全使用vue。不强制的意思。–mvvm:m:数据模型,v-view视图:数据是双向绑定的,所有数据改变导致视图改变。vue... 查看详情

03-vue指令(代码片段)

...f0c;想持续跟着江哥学习Vue系列一键三连走起!什么是指令?指令就是Vue内部提供的一些自定义属性,这些属性中封装好了Vue内部实现的一些功能,只要使用这些指令就可以使用Vue中实现的这些功能。通过这些指令可以... 查看详情

03-vue指令(代码片段)

...f0c;想持续跟着江哥学习Vue系列一键三连走起!什么是指令?指令就是Vue内部提供的一些自定义属性,这些属性中封装好了Vue内部实现的一些功能,只要使用这些指令就可以使用Vue中实现的这些功能。通过这些指令可以... 查看详情

vue基础知识(代码片段)

目录vue基础helloVue.模板语法-文本语法文本模板语法-属性使用JavaScript表达式条件指令v-ifv-show指令列表渲染基本用法对象循环输出key事件处理方法事件修饰符侦听器对象变化监听自定义指令vue基础Vue.js的定位是一个渐进式框架前... 查看详情

03-深入了解vue指令(代码片段)

一、指令的深入学习1.1class类切换的对象写法<divid="box"><!--执行结果如下<divclass="aabbcc"></div>--><div:class="classObj"></div></div><script&g 查看详情

03-深入了解vue指令(代码片段)

一、指令的深入学习1.1class类切换的对象写法<divid="box"><!--执行结果如下<divclass="aabbcc"></div>--><div:class="classObj"></div></div><script&g 查看详情

前端芝士树vue.js面试题整理/知识点梳理(代码片段)

【前端芝士树】Vue.js面试题整理MVVM是什么?MVVM是Model-View-ViewModel的缩写。Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。View代表UI组件,它负责将数据模型转化成UI展现出来。ViewModel监听模型数据的改变和... 查看详情

jsp知识点整理(代码片段)

JSP知识点整理概念原理JSP脚本JSP内置对象requestreponseoutout和reponse.getWriter()的区别记住上一次访问时间的案例jsp中使用out.write()和out.print()方法出错爆红解决方法指令注释内置对象MVC开发模式EL表达式概念,作用,语法,... 查看详情

vue指令03---自动获取焦点(自定义指令)和过滤器的学习(代码片段)

1.1自动获取焦点  在自动获取焦点的学习中涉及到了一个钩子函数mounted(),它表示页面一加载进来就执行函数里面的内容,(和window.onload相似,这样有助于理解),mounted钩子函数的名字不能随便更改,而且不能写在methods... 查看详情

vue--钩子函数1(代码片段)

最近在学习自定义指令,这里做个整理vue允许注册自定义指令,在2.0中,代码复用和抽象的主要形式是组件。然而有的情况下仍需要对普通DOM元素进行底层操作,这时就会用到自定义指令。全局指令directive,局部指令directives一... 查看详情

为期两月的面试整理(代码片段)

目录一、js部分箭头函数与普通函数的区别Promiseasync和awaitjs继承事件循环机制(EventLoop)js事件阶段和事件委托js垃圾回收机制双等于‘==’引出的一系列违反常理的情况二、vue部分vue插件、指令、组件和过滤器vue组... 查看详情

vue:vue事件整理(代码片段)

文章目录前言一、Vue基本事件this对象传递参数总结二、事件修饰符三、键盘事件keyup/keydown四、ElementUi前言本篇复习Vue中的事件处理,包含事件基本响应、事件修饰符、键盘事件等内容一、Vue基本事件Vue中,设置点击、鼠... 查看详情

027.整理几个面试题——关于vuexvue指令(代码片段)

文章目录关于Vuex01.vuex是什么?02.vuex有哪几种属性?03.Ajax请求写在哪里?04.Vuex刷新页面数据丢失?关于指令01.v-show与v-if的区别?02.v-for与v-if的使用?03.v-for中的**key**的作用?04.v-on可以监听多个方法吗... 查看详情

027.整理几个面试题——关于vuexvue指令(代码片段)

文章目录关于Vuex01.vuex是什么?02.vuex有哪几种属性?03.Ajax请求写在哪里?04.Vuex刷新页面数据丢失?关于指令01.v-show与v-if的区别?02.v-for与v-if的使用?03.v-for中的**key**的作用?04.v-on可以监听多个方法吗... 查看详情

vue指令03——v-bind和v-for的使用(代码片段)

Vue指令03——v-bind和v-forv-bind命令效果:更改元素属性,如src、title、href格式:v-bind:属性=”变量“格式::属性=”变量“修改行类样式1<!--绑定样式--><divid="app"><!--绑定样式属性值--><divv-bind:><!--绑定样式对... 查看详情

vue基础知识点(代码片段)

基础知识:vue的生命周期: beforeCreate/created、beforeMount/mounted、beforeUpdate/updated、beforeDestory/destoryedvue常用指令: v-for、v-bind(缩写形式:prop)、v-on(缩写形式@click=’sss‘)、v-if/v-else/v-else-if、v-model、v-on 查看详情