VUE笔记

VUE笔记(甲)



前言

最近做的项目用到的一些小工具小技巧


一、VUE介绍

略。

二、笔记内容

1.before-leave

before-leave钩子,它是el-tabs的一个一个属性,给该属性绑定一个函数,则在触发tab切换时将执行绑定的函数。

<el-tabs v-model="activeName" type="card" :before-leave="leave">
      <el-tab-pane name="first">
        <span>
          录入
        </span>
        <Edit/>
      </el-tab-pane>
      <el-tab-pane name="second">
        <span>
          历史查询
        </span>
        <Basic/>
      </el-tab-pane>
      <el-tab-pane  name="three">
        <span>
          详情
        </span>
        <orderShow/>
      </el-tab-pane>
    </el-tabs>

methods: {
leave(activeName, oldActiveName) {
     随便写点逻辑
    }

2.Promise

Promise 就是用同步的方式写异步的代码,用来解决回调问题

有两个参数,第一个是成功 resolve 调用的方法,第二个是失败 reject 调用的方法
下面做一个买笔写作业上交的演示,它们是层层依赖的关系,下一步的的操作需要使用上一部操作的结果。(这里使用 setTimeout 模拟异步操作),正式开发可以用 ajax 异步

 //买笔
 2         function buy(){
 3             console.log("开始买笔");
 4             var p = new Promise(function(resolve,reject){
 5                 setTimeout(function(){
 6                     console.log("买了笔芯");
 7                     resolve("数学作业");
 8                 },1000);
 9             });
10             return p;
11         }
12         //写作业
13         function work(data){
14             console.log("开始写作业:"+data);
15             var p = new Promise(function(resolve,reject){
16                 setTimeout(function(){
17                     console.log("写完作业");
18                     resolve("作业本");
19                 },1000);
20             });
21             return p;
22         }
23 
24         function out(data){
25             console.log("开始上交:"+data);
26             var p = new Promise(function(resolve,reject){
27                 setTimeout(function(){
28                     console.log("上交完毕");
29                     resolve("得分:A");
30                 },1000);
31             });
32             return p;
33         }
42 
43         //推荐这种简化的写法
44         buy().then(work).then(out).then(function(data){
45             console.log(data);
46         });

在这里插入图片描述


3.loading

在vue中使用element-ui 里面的按钮点击后显示加载中,防止重复提交,个人觉得挺好玩的功能。

 <div class="dialog-footer">
        <el-button type="info" @click="cancelHandle">关闭</el-button>
        <el-button
          v-if="!isDisable"
          type="primary"
          :loading="buttonLoading"
          @click="confirmHandle"
        >{{ loadingbuttext }}
        </el-button>
      </div>

  data() {
    data() {
     buttonLoading: false,
         loadingbuttext: '确定'
    }

}
	
 methods: {
	 this.$refs['ruleForm'].validate(async(valid) => {
          if (valid) {
           this.loadingbut = true
           let res = {}
           if (this.toChildType === 'sure') {
                 this.loadingbuttext = '下单中...'
                 res = await save(this.ruleForm)
            } else {
               this.loadingbuttext = '退单中...'
               res = await cancel(this.ruleForm)
            }
            if (res.resultCode === S_OK || res.resultCode === S_OK2) {
              this.loadingbut = false
              this.loadingbuttext = '确定'
              this.$emit('activeNameEmit', { active: 'second', data: { orderId: '', initFlag: '1' }})
            }
          }
        })
      },
}

效果
在这里插入图片描述在这里插入图片描述


## 4.οncοpy="return false" οnpaste="return false"

禁止选中和禁止粘贴,这个功能在很多地方都可能遇到,比如确认密码等等。

 <el-input v-model="form.passWord" clearable :disabled="isDisable" placeholder="请再次确认密码" οncοpy="return false" οnpaste="return false" />

总结

今天就先到这吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值