您现在的位置是:首页 > 编程 > 

【Vue 从入门到实战 进阶式掌握完整知识体系】029

2025-07-27 07:30:52
【Vue 从入门到实战 进阶式掌握完整知识体系】029 6、数据校验插件先使用app.mixin实现校验代码语言:javascript代码运行次数:0运行复制<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta

【Vue 从入门到实战 进阶式掌握完整知识体系】029

6、数据校验插件

先使用实现校验
代码语言:javascript代码运行次数:0运行复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>hello vue</title>
  <!-- 引入Vue库 -->
  <script src="@next"></script>
</head>

<body>
  <div id="root"></div>
</body>

<script>

  ct app = ({
    data(){
      return{
        name: 'zibo',
        age: 25
      }
    },
    rules: {
      age: {
        validate: age => age > 25,
        message: "太年轻了!"
      },
      name: {
        validate: name => name.length > 4,
        message: "太短了!"
      }
    },
    template: `
      <div>name: {{name}} age: {{age}}</div>
    `
  });
  
  // 使用mixin
  ({
    // 实例创建完成后执行
    created(){
      // 遍历rules
      for(let key in this.$opti.rules){
        // 取出当前规则
        ct item = this.$opti.rules[key];
        // 监控属性 key 发生变化,执行函数
        this.$watch(key, value => {
          // 执行每一条规则下的 validate 表达式
          // value 是新的值
          ct result = item.validate(value);
          // 如果返回 false 打印 规则里的 message
          if(!result){
            cole.log();
          }
        });
      }
    }
  });

  ct vm = ('#root');
</script>

</html>
运行结果
image-2021061415474540.png
通过插件实现
代码语言:javascript代码运行次数:0运行复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>hello vue</title>
  <!-- 引入Vue库 -->
  <script src="@next"></script>
</head>

<body>
  <div id="root"></div>
</body>

<script>

  ct app = ({
    data(){
      return{
        name: 'zibo',
        age: 25
      }
    },
    rules: {
      age: {
        validate: age => age > 25,
        message: "太年轻了!"
      },
      name: {
        validate: name => name.length > 4,
        message: "太短了!"
      }
    },
    template: `
      <div>name: {{name}} age: {{age}}</div>
    `
  });

  // 定义一个插件:新写法,相当于写 install
  ct validatorPlugin = (app, opti) => {
    // 使用mixin
    ({
      // 实例创建完成后执行
      created(){
        // 遍历rules
        for(let key in this.$opti.rules){
          // 取出当前规则
          ct item = this.$opti.rules[key];
          // 监控属性 key 发生变化,执行函数
          this.$watch(key, value => {
            // 执行每一条规则下的 validate 表达式
            // value 是新的值
            ct result = item.validate(value);
            // 如果返回 false 打印 规则里的 message
            if(!result){
              cole.log();
            }
          });
        }
      }
    });
  }

  // 使用插件
  app.use(validatorPlugin);

  ct vm = ('#root');
</script>

</html>
运行结果
image-20210614160029084.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除vue插件入门数据语法

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1200039.html

相关标签:无
上传时间: 2025-07-23 17:39:17
留言与评论(共有 10 条评论)
本站网友 长沙新房
29分钟前 发表
{ validate
本站网友 smalldatetime
22分钟前 发表
` <div>name
本站网友 网上交易平台
29分钟前 发表
{ validate
本站网友 ihaveadream
23分钟前 发表
{ validate
本站网友 上海门面出租
28分钟前 发表
rules
本站网友 戒烟后身体会出现的各种变化
23分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看vue插件入门数据语法
本站网友 07年高考分数线
5分钟前 发表
【Vue 从入门到实战 进阶式掌握完整知识体系】029 6
本站网友 东湖东亭二手房
22分钟前 发表
"太短了!" } }
本站网友 黄金价格还会跌吗
15分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看vue插件入门数据语法