自己写个vue.js插件(1):自定义指令的妙用

快速上手springboot+vue的前后端分离项目 使用webStorm新建项目后,把 .lock文件删除后项目运行才不报错,配置文件 vue.config.js 中加入 lintOnSave: false 关闭eslint语法检测。在多层嵌套的父子组件之间传递状态已经十分麻烦,而Vue更是没有为兄弟组件提供直接共享数据的办法。基于这个问题,许多框架提供了解决方案——使用全局的状态管理器,将所有分散的共享数据交由状态管理器保管,Vue也不例外。其中一种解决CORS 的方法, 在springboot项目中跨域的方法或类加上@CrossOrigin注解。 阅读详情

写个插件

文档:https://vuefe.cn/guide/plugins.html

1.在components 目录下新建一个validate.js:

export default{
    install(Vue){
        Vue.prototype.$myName = "zhagngsan";
    }
}

这就是我们的插件,定义了一个属性

2.入口文件jssrc/index.js 加入:

// 引入
import validate from "./../components/validate";
// 使用
Vue.use(validate);

3.我们到user-username.vue 组件下验证一下:

mounted(){
            alert(this.$myName);
        },

浏览器访问登录页面,成功弹出:
这里写图片描述

4.刚刚我们已经学会插件里定义属性,马上来学一下如何定义方法:

export default{
    install(Vue){
       // Vue.prototype.$myName = "zhagngsan";
        Vue.prototype.checkUserName = (value) => {
            if(/\w{6,20}/.test(value)){
                return true;
            }else{
                return false;
            }
        }
    }
}

同样可以使用该方法:

if(this.checkUserName("hello")){
    alert("ok");
}else{
    alert("error");
}

5.
这里写图片描述
我们修改user-name.vue 组件,来实现文本框验证:

<template>
    <div class="form-group">
        <label class="col-sm-2 control-label">用户名</label>
        <div class="col-sm-10">
            <input type="text" v-model="username" v-on:change="userNameChange" class="form-control" :placeholder="username">
            <label class="label label-danger" v-if="showErrorLabel">用户不合法</label>
        </div>
    </div>
</template>

<script>
    export default{

        props:["placeholder"],
        data:function () {
            return {
                username:"",
                showErrorLabel:false,
            }
        },
        methods:{
            userNameChange(){
                // 用户名改变的方法里判断 用户名是否复合要求
                if(this.checkUserName(this.username)){
                    this.showErrorLabel = false; // 如果验证没有通过就显示错误提示
                }else{
                    this.showErrorLabel = true;
                }

                // 调用父组件的方法
                this.$emit("childChange","username",this.username)
            }
        }
    }
</script>

这里写图片描述

自定义指令

文档:https://vuefe.cn/guide/custom-directive.html

1、validate.js:

export default{
    install(Vue){
       // Vue.prototype.$myName = "zhagngsan";
        Vue.prototype.checkUserName = (value) => {
            if(value == ""){
                return true; // 如果没有填写,默认为true
            }

            if(/\w{6,20}/.test(value)){
                return true;
            }else{
                return false;
            }
        }

        Vue.directive("uname",{
            bind(){
                console.log("bind"); // 只会调用一次
            },
            update(el,binding,vnode){
                console.log(el);
                console.log(binding);
                console.log(vnode);
            },
        })
    }
}

2、我们自定了一个uname 指令,下面来看一下如何使用的?

<input type="text" v-uname="username" v-model="username" v-on:change="userNameChange" class="form-control" :placeholder="username">

我们在组件的模板里使用了 v-uname ,并且给绑定了”username”数据。
我们打开浏览器的控制台:
这里写图片描述
说明我们定义的指令里,这个方法执行了:

bind(){
    console.log("bind"); // 只会调用一次
},

3、下面我们来看一下update 里的东东

update(el,binding,vnode){
    console.log(el);
    console.log(binding);
    console.log(vnode);
}

这里写图片描述

我们这里只是一个简单的展示,一定要看文档熟悉
https://vuefe.cn/guide/custom-directive.html

Amber分子动力学模拟:蛋白结构准备全流程与关键注意事项 分子动力学模拟是研究蛋白结构、配体结合与构象变化的重要计算手段,其结果的可靠性高度依赖初始结构的质量。在Amber模拟体系中,结构准备是决定后续计算成败的“一票否决”环节,任何缺失残基、错误质子化状态或未处理的二硫键都可能让长时程模拟失去意义。从PDB原始文件出发,需依次完成结构检查与清洗、残基命名统一、配体参数化、金属离子建模、加氢及质子化状态判断,最后通过tleap构建力场、溶剂盒子与离子环境。这一过程看似琐碎,却直接决定了蛋白在模拟中的物理合理性。无论是解析催化机制、评估药物结合亲和力,还是探索构象变 阅读详情

相关推荐

扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码)

扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码) 文章目录扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码)理论讲解KF和EKF模型对比雅可比矩阵计算计算实例应用实例线性模型CV模型:CA模型非线性模型CTRV模型:CTRV实例(python)small demo抛物线demo飞机高度demoC++实例参考文献 我们上篇提到的卡尔曼滤波是用于线性系统,预测(运动)模型和观测模型是在假设高斯和线性情况下进行的。简单的卡尔曼滤波必须应用在符合高斯分布

O_MMMM_O的博客 10万+

全局注册vue方法,多文件调用export install

一、实现方法 1.全局注册,多文件调用 export default{ install(Vue.options){ Vue.prototype.XXXXX=function(){//全局注册XXXXX方法 console.log('11111') } } } 具体使用方法: (1)新建一个js文件,用来注册全局方法(此例中新建global.js) export default{ install(Vue.options){ Vue.prototype.aaaaa=function(

u013437812的博客 2206

MATLAB信号处理实战:VMD分解参数调优全指南(附避坑技巧)

本文深入探讨了MATLAB中变分模态分解(VMD)的核心参数调优实战技巧。针对模态数K和惩罚系数α的选择难题,提供了从经验估计、可视化观察到量化指标辅助的渐进式调优框架,并分享了避免过分解与欠分解的实用避坑指南,旨在帮助工程师高效处理非平稳信号,提取清晰的物理特征。

weixin_29079671的博客 144

使用 Vue 实例( 全局 API )

文章目录『 总览 』『 Vue.extend 』『 Vue.nextTick 』『 Vue.set 』『 Vue.delete 』『 Vue.directive 』『 Vue.filter 』『 Vue.component 』『 Vue.use 』『 Vue.mixin 』『 Vue.compile』『 Vue.version 』 『 总览 』 Vue.extend(options) // 通过继承一个 option 对象来创建一个 Vue 实例 Vue.nextTick(

AI-fisher的博客 1420

PayPal支付集成完全指南:开源库实践

本文介绍了如何从零开始集成PayPal支付功能。首先概述了PayPal提供的多语言SDK和开源库,包括PHP、Python、Node.js等版本。然后详细说明了准备工作,包括注册开发者账号、获取API凭证和使用沙盒环境测试。文章以Node.js为例,演示了安装SDK、基础配置和实现支付流程的完整代码,包括创建订单和捕获支付两个核心功能。最后提及了订阅支付等高级功能,为开发者提供了完整的支付集成方案。通过清晰的代码示例和步骤说明,帮助开发者快速实现PayPal支付功能集成。

2501_93501927的博客 1257

告别盲调!用Synopsys VIP搭建PCIe 5.0验证环境,手把手搞定链路训练与均衡调试

本文详细介绍了基于Synopsys VIP搭建PCIe 5.0验证环境的实战指南,重点解析了链路训练(LTSSM)与均衡调试的关键技术。通过配置VIP组件、设计验证平台架构及实战调试技巧,帮助工程师高效解决PCIe 5.0验证中的常见问题,提升芯片验证效率与可靠性。

weixin_28700411的博客 454

vue注册全局组件保姆级教程

1.首先在公共组件文件夹中创建一个js文件 2.直接CV下面这段代码到js文件中,提供统一注册的入口文件 * require.context('文件路径',深层次查找[bool],匹配的文件后缀)----webpack提供的 export default { install(Vue) { /* 函数 */ var requireComponent = require.context('./', true, /\.vue$/) // console.dir(requ

qq_66390045的博客 1321

halcon第二讲:焊点提取

本文要完成的任务是将下图中焊点提取出来,对应于halcon例程Blob分析中的ball.hdev。 dev_open_window (0, 0, 512, 512, 'black', WindowHandle) read_image (Image, 'die_03.png') disp_continue_message (WindowHandle, 'black', 'true') sto...

qq_24946843的博客 7175

用vue install 写一个全局插件

创建一个插件文件夹,里面包含.vue(模板文件)和.js文件(vue.use 注册全局组件需要用到) 1.模板准备 <template> <div> <h1> loading</h1> </div> </template> 2.js文件准备好一个install方法,并且导出。 安装 Vue.js 插件。如果插件是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。insta

oqqLWX的博客 1034

以太网GMAC-RK3568

第 2 章和第 3 章中针对 RMII/RGMII 接口芯片和 USB 以太网两种类型芯片在 SDK 上的配置做详细的描述,第 4 章介绍以太网在 Android 上的相关调用接口。第 5 章提供常见问题的排查建议由于在 RK 系列的 SoC 中内置了以太网 MAC 控制器,所以只需要搭配一颗以太网 PHY 芯片,即可实现以太网卡功能按照规范,即使是不同厂家的 PHY,仍然有一部分寄存器的定义是通用的,只要配置了这些通用的寄存器,基本上 PHY 就可以正常工作代码位置在。

qq_24093081的博客 1942

【Camera2教程一】Camera2的框架Pipeline和framework中核心类和接口的详细介绍

Camera2 的 API 模型被设计成一个 Pipeline(管道),它按顺序处理每一帧的请求并返回请求结果给客户端。

jiangchaobing_2017的博客 790

vue自定义插件的方法

一、定义插件的目的是为了使用函数式调用某个全局组件,方便直接在js中调用,不需要在任何组件中声明,大概是这样的效果。1.准备好需要的组件。

Lingoup的博客 525

【科研绘图系列】R语言绘制代谢物与临床表型相关性的森林图

本研究通过森林图展示了特定代谢物与三种临床比较之间的相关性分析结果。这种方法不仅直观地展示了每个代谢物的效应大小和不确定性,还允许我们比较不同代谢物在不同临床比较中的影响。森林图的结果表明,某些代谢物在特定临床比较中显示出显著的相关性,这可能为理解疾病的代谢机制提供了重要线索。

专注生信领域 561

Vue.js 深入探索:自定义指令与插件开发

和。

byby0325_的博客 1332

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Vue 自定义指令与插件开发

探索 Vue.js 自定义指令与插件开发的奥秘!本文从基础概念入手,详细讲解全局与局部指令的实现,并通过实战案例教你如何封装通用功能为插件。通过 Toast 插件的实战演练,你将学会如何将复杂功能模块化,打造更灵活、可复用的 Vue 应用。快来解锁 Vue 的无限可能吧!

星核日记,一个编程开发者的小天地。我将和大家一起,穿梭于多语言迷宫,剖析算法精妙,分享实战项目。 1199

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Vue.js从入门到就业[第19讲]:一文搞定插件开发与自定义指令!

在现代 web 开发中,随着应用规模的增长和复杂性的增加,如何有效管理应用的功能和结构成为了开发者面临的重要课题。Vue.js 作为一款非常流行且灵活的前端框架,提供了强大的插件系统和自定义指令功能。通过插件和指令的使用,开发者能够轻松地扩展 Vue 的原生功能,添加全局功能或者实现一些特殊的行为。通过这些机制,Vue.js 不仅增强了开发的可扩展性,还提高了应用的复用性和维护性。在本期专栏中,我们将深入探讨 Vue.js 中如何开发插件和自定义指令。

**My Coding Family** 1320

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【Vue.js 自定义指令配置使用】

Vue.js 自定义指令使用

weixin_45655721的博客 1257

vue自定义指令

内置指令:v-html、v-if、v-bind、v-on…这都是Vue给咱们内置的一些指令,可以直接使用自定义指令:同时Vue也支持让开发者,自己注册一些指令。这些指令被称为自定义指令每个指令都有自己各自独立的功能bind:只调用一次,指令第一次绑定到元素时调用inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。update:所在组件的 VNode 更新时调用。

weixin_42858221的博客 1487

使用vue自定义指令开发一个表单验证插件validate.js

这段时间在进行一个新项目的前期搭建,新项目框架采用vue-cli3和typescirpt搭建。因为项目比较轻量,所以基本没有使用额外的ui组件,有时候我们需要的一些基础组件我就直接自己开发了。今天就来介绍一下如何利用vue的自定义指令directive来开发一个表单验证插件的过程。 1.vue插件开发 关于vue的插件开发,官方文档里有很清晰的说明,详情可以去阅读开发文档。我自己开发的表单验证插...

weixin_33750452的博客 1325

Vue自定义指令和插件

12

JAVA领域优秀创作者 619

什么是div移动指令?如何用vue自定义指令实现?

Vue.js是一个用于构建用户界面的渐进式JavaScript框架。它设计得非常灵活,可以轻松地被集成到现有的项目中,也可以作为一个完整的前端解决方案来使用。Vue.js的核心库只关注视图层,这使得它非常容易学习,并且与其他库或现有项目集成。同时,Vue.js也完全能够支持各种复杂的单页应用。

杨荧的优快云博客 1673

vuejs插件_VueJS 2的基本翻译插件

vuejs插件 Vue-Polyglot (Vue-Polyglot) basic translation plugin for VueJS 2+. VueJS 2+的基本翻译插件。 View demo 查看演示 Download Source 下载源 安装 (Installation) npm install --save vue-polyglot TLDR (TLDR) can lo...

cuk5340的博客 2150

Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

ranran0306的博客 9676

【Vue.js进阶】5、插件与自定义指令

Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架,在 2014 年创建,设计理念是自底向上增量开发,核心库主要关注视图层,易于上手且可轻松与其他库或项目集成。Vue.js 提供直观的 API 和优雅的编程模型,组件系统允许开发者将应用程序拆分为可复用的独立组件,单文件组件 (SFC) 格式进一步简化了开发流程。Vue.js 拥有强大的生态系统,包括 Vue Router(用于单页应用路由)、Vuex(用于状态管理)和 Vue CLI(提供项目脚手架和构建工具)

weixin_52938153的博客 480

Vue.js 中的自定义指令与插件开发之编写 Vue 插件

Vue.js 插件是一种封装好的代码,可以在 Vue 应用中全局使用。插件可以添加全局方法、指令、组件,或者提供新的功能。插件可以提供自定义指令,用于实现特定的功能。// 在插件中添加自定义指令},});

轻口味的专栏 535

Vue:自定义插件及使用

一、Vue插件有什么用 插件通常会为 Vue 添加全局功能。 所谓全局: 即不需要像组件那样,每次使用他前都需要先引入一次。对于插件只要在最开始引入一次,在任何组件就可以直接使用。(类似于我们在window上添加的方法属性那样,任何地方都可以用) 插件能实现的功能没有限制,不过常见下面几种: 通过插件,添加全局方法或者属性 通过插件,添加全局资源:指令/过滤器/过渡等 通过插件(使用全局 mix...

qq_38796823的博客 8561
上一篇: 路由学习(3):组件的异步加载
下一篇: Java语言基础-JVM内存模型
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值