Vue.js-过滤器和侦听器

Posted guardwhy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue.js-过滤器和侦听器相关的知识,希望对你有一定的参考价值。

1.1 filter过滤器

1.1.1 什么是过滤器

过滤器是对即将显示的数据做进一步的筛选处理,然后进行显示,值得注意的是过滤器并没有改变原来的数据,只是在原数据的基础上产生新的数据。

数据加工车间,对值进行筛选加工。

1.1.2 过滤器使用位置

双括号插值内

{{ msg | filterA }} msg是需要处理的数据, filterA是过滤器, | 这个竖线是管道,通过这个管道将数据传输给过滤器进行过滤。

v-bind绑定的值的地方

<h1 v-bind:id=" msg | filterA"> {{ msg }} </h1>

1.1.3 过滤器

局部过滤器

基本需求: 通过过滤器给电脑价格前面 添加一个符号$

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <!-- 使用插值表达式,调用过滤器 -->
      <p>电脑价格: {{price | addPrice}}</p>
    </div>
  </body>
  <script src="js/vue.js"></script>
  <script>
    //局部过滤器 在vue实例的内部创建filter
    const app = new Vue({
      el: "#app", //挂载点
      data: {
        //model
        price: 200,
      },
      //局部过滤器
      filters: {
        //定义处理函数 value = price
        addPrice(value) {
          return "$" + value;
        },
      },
    });
  </script>
</html>

执行结果

全局过滤器

基本需求: 将用户名开头字母大写。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /*
        需求: 将用户名开头字母大写
        总结:
          1.过滤器经常被用来处理文本格式化操作
          2.过滤器使用的两个位置: {{}} 插值表达式中, v-bind表达式中
          3.过滤器是通过管道传输数据的 |
      */
    </style>
  </head>
  <body>
    <div id="app">
      <p>{{user.name | changeName}}</p>
    </div>
  </body>
  <script src="js/vue.js"></script>
  <script>

    //在创建vue实例之前,创建全局过滤器
    Vue.filter("changeName", function (value) {
      //将姓名的开头字母大写
      return value.charAt(0).toUpperCase() + value.slice(1);
    });

    const app = new Vue({
      el: "#app",
      data: {
        user: { name: "guardwhy" },
      },
    }); 
  </script>
</html>

执行结果

1.1.4 总结

过滤器常用来处理文本格式化的操作。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式。
过滤器应该被添加在 javascript 表达式的尾部,由“管道”符号指示。

2.1 watch侦听器

2.1.1 什么是侦听器

Vue.js 提供了一个方法 watch,它用于观察Vue实例上的数据变动。
作用: 当你有一些数据需要随着其它数据变动而变动时,可以使用侦听属性。

2.1.2 代码示例

需求: 监听数字变化,实时显示!!!

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <h2>计数器:{{count}}</h2>
      <input type="button" @click="count++" value="按钮" />
    </div>
  </body>
  <script src="js/vue.js"></script>
  <script>
    const app = new Vue({
      el: "#app",
      data: {
        count: 1,
      },
      watch: {
        //监测属性的值的变化
        count: (num2, num1) =>
        //参数1:原来的值 参数2:新的值
        alert("计数器发生变化: " + num1 + "变化为 " + num2)
      },
    });
  </script>
</html>

执行结果

以上是关于Vue.js-过滤器和侦听器的主要内容,如果未能解决你的问题,请参考以下文章

vue.js

vue.js

Vue.js中侦听器(watch)的高级用法

servlet,过滤器,监听器,拦截器的区别

使用带有渲染功能的 Vue.js 3 片段

Vue.js学习日记——计算属性和侦听器