首页 > 其他分享 >vue 指令与过滤器

vue 指令与过滤器

时间:2022-11-23 21:45:27浏览次数:53  
标签:count el vue 渲染 绑定 vm 指令 过滤器 data

vue 指令与过滤器

内容渲染指令

内容渲染指令是用来辅助开发者渲染 DOM 元素的文本内容。常用的内容渲染指令有3种。

v-text

示例

<div id="app">
    <!-- 把 username 对应的值,渲染到第一个 p 标签中 -->
    <p v-text="username"></p>
    <!-- 把 gender 对应的值,渲染到第二个 p 标签中 -->
    <!-- 注意:第二个 p 标签中,默认文本会被gender值覆盖 -->
    <p v-text="gender">性别</p>
</div>
<!-- 导入 vue 的库文件 -->
    <script src="./lib/vue.js v2.7.13.js"></script>
//创建vue 的实例对象
const vm = new Vue({
    //el 属性是固定写法,表示当前 vm 实例要控制的区域,接收的是一个选择器
    el: '#app',
    // data 对象就是要渲染到页面上的数据
    data: {
        username: 'zs',
        gender: '男'
    }
});

插值表达式 {{}}双大括号

在实际开发中应用较多,不会覆盖原有渲染
示例

<div id="app">
    <p>姓名:{{username}}</p>
</div>
const vm = new Vue({
    //el 属性是固定写法,表示当前 vm 实例要控制的区域,接收的是一个选择器
    el: '#app',
    // data 对象就是要渲染到页面上的数据
    data: {
        username: 'zs',
        gender: '男',
    }
});

v-html

可以把带标签的的字符串,渲染成真正的html 内容
示例

<div id="app">
    <div v-html="info"></div>
</div>
const vm = new Vue({
            //el 属性是固定写法,表示当前 vm 实例要控制的区域,接收的是一个选择器
            el: '#app',
            // data 对象就是要渲染到页面上的数据
            data: {
                info: '<h4 style="color: red; font-weight: bold;"> 欢迎学习 vuejs</h4>'
            }
        });

属性绑定指令

注意:插值表达式只能用在元素内容节点中,不能用在元素的属性节点

动态绑定属性值 v-bind

在属性前加属性指令 v-bind: 为元素动态绑定值,vue 规定 v-bind 可以简写成: ,示例

<input type="text" v-bind:placeholder="tips">
<img :src="photo" style="width: 150px;">

使用 javascript 表达式

在 vue 提供的模板渲染语法中,除了支持绑定简单的数据值之外,还支持 javascript 表达式的运算,例如

{{ number + 1 }};
{{ ok ? 'YES' : 'NO'}};
{{ message.split('').reverse().join('')}};

<div v-bind:id="'list-' + id"></div>

注意在简写 v-bind 属性绑定期间,如果绑定内容需要进行动态拼接,则字符串外应包裹单引号,例如

<div :title="'box' + index">!!!!!</div>

事件绑定指令

v-on 绑定事件

v-on 绑定事件指令,辅助程序员为DOM元素绑定监听事件,格式如下

<p>count的值是: {{count}}</p>
        <!-- 语法格式为 v-on:事件名称="事件处理函数的名称" -->
        <button v-on:click="addCount">+1</button>

 const vm = new Vue({
            //el 属性是固定写法,表示当前 vm 实例要控制的区域,接收的是一个选择器
            el: '#app',
            // data 对象就是要渲染到页面上的数据
            data:{
                count: 0,
            },
            // 定义事件的处理函数
            methods:{
                add: function () {
                    // console.log(vm);
                    // vm.count += 1; 
		    // this === vm 
                    this.count += 1;
                }
		// 也可简写成
                add () {
                    // console.log(vm);
                    this.count += 1;
                }
            }
        });

v-on: 也可以简写为 @

<button @click="sub">-1</button>

注意:原生 DOM 对象有 onclick、oninput、onkeydown 等原生事件,替换成 vue 的事件绑定形式后,分别为: v-on:click 、v-on:input、v-on:keydown

事件对象

vue 提供了内置固定的变量 $event ,它就是原生 DOM 的事件对象 e

<!-- 如果 count 为偶数,则按钮背景变为蓝色,否则,取消背景 -->
<!-- vue 提供了内置固定的变量 $event ,它就是原生 DOM 的事件对象 e-->
        <button @click="add(1, $event)">+n</button>
const vm = new Vue({
            //el 属性是固定写法,表示当前 vm 实例要控制的区域,接收的是一个选择器
            el: '#app',
            // data 对象就是要渲染到页面上的数据
            data:{
                count: 0,
            },
            // 定义事件的处理函数
            methods:{
                add (n, e) {
                    this.count += 1;
                    // 判断 this.count 的值是否为偶数
                    if (this.count%2 === 0) {
                        //偶数
                        e.target.style.backgroundColor = 'blue';
                        console.log(e);
                    } else {
                        // 奇数
                        e.target.style.backgroundColor = '';
                    }
                }
              
            }
          
        });

事件修饰符

在事件处理函数中调用 event.preventDefault() event.stopPROpagation() 是非常常见的需求。因此, vue 提供了事件修饰的概念,辅助程序员更方便的**对事件的触发进行控制。常用5种修饰符如下:

事件修饰符 说明
.prevent 阻止默认行为(例如:阻止 a 链接跳转、阻止表单提交等)
.stop 阻止事件冒泡
.capture 以捕获模式触发当前的事件处理函数
.once 绑定事件只触发一次
.self 只有在 event.target 是当前元素自身时触发事件处理函数

示例1:

<a href="http://www.baidu.com" @click.prevent="show">跳转到百度首页</a>
const vm = new Vue({
            //el 属性是固定写法,表示当前 vm 实例要控制的区域,接收的是一个选择器
            el: '#app',
            // data 对象就是要渲染到页面上的数据
            data:{},
            // 定义事件的处理函数
            methods:{
                show () {
		    // e.preventDefault();
                    console.log("点击了 a 链接");
                }
            } 
        });

标签:count,el,vue,渲染,绑定,vm,指令,过滤器,data
From: https://www.cnblogs.com/LuBingBing/p/16920213.html

相关文章

  • vue中根据不同的开发环境配置不同的请求地址
    4、Vue环境变量配置在开发的时候一般会有是三个环境:开发环境测试环境线上环境vue中有个概念就是模式,默认先vuecli有三个模式development开发环境模式用于vue......
  • vue3和vue2 的区别,vue3和vu2到底哪个好呢?
    vue3正式发布有两年多了,之前也做过一些学习和研究。vue3发布后给某培训机构开发了一套vue3课程课件,自己也开源了一套基于vue3的后台管理系统(因为个人懒的原因,半年后才上......
  • Vue笔记 - 自定义事件与事件总线
    自定义事件与事件总线目录自定义事件与事件总线1.事件1.1基本使用1.2事件修饰符1.3键盘事件2.自定义事件3.全局事件总线1.事件1.1基本使用使用v-on:xxx或......
  • Springboot应用中过滤器chain.doFilter后设置header无效
    本文是在使用过滤器添加动态header过程中遇到设置header无效,经过研究源码而产生。因为特殊需求,自定义的header必须在经过Controller处理之后,才能确定,所以不能在请求处理......
  • vue 中使用 this 更新数据的一次大坑
    情景说明:之前用vue做数据绑定更新时,发现一个莫名奇妙的问题。我在vue实例中声明了一个数组属性如books:[],在异步请求的回调函数中使用this.books=res.data.dat......
  • vite +vue3 项目搭建
    创建项目npmcreatevite@latestdemo配置环境变量vite提供了开发模式和生产模式这里我们可以建立4个.env文件,一个通用配置和三种环境:开发、测试、生产。env文......
  • VUE3使用Vue-Toastification
    官方地址:https://vue-toastification.maronato.dev/?from=madewith.cn需求:要搞一个实时提醒弹窗,刚开始用的elementplus里的Notification,但后面原型图又改了,加上了交互......
  • Vue遍历data中某个字段并累加,res.result.forEach方法总结
    forEach的定义和方法:forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。注意:forEach()对于空数组是不会执行回调函数的。一、html部分<divclass="tab-con......
  • vue组件-文本超出显示点点点且悬浮可查看所有内容
    需求当文本超出的时候需要显示点点点,然后鼠标悬浮其上要能查看所有的文本内容。就直接封装一个通用的组件。依赖项element-plusvue3组件存放目录新建vue文件/compo......
  • Vue 初识
    官方地址地址:https://cn.vuejs.org/安装Vue库地址:https://v2.cn.vuejs.org/v2/guide/installation.html 安装浏览器调试工具 另外一种方式安装Vue-devtools......