Vue|插件

在 Vue.js 中,插件是用来扩展 Vue 功能的一种方式,能够帮助开发者扩展和复用功能。通过合理使用插件,可以提高代码的组织性和可维护性

目录

  • 如何使用插件?
    • 插件的定义
    • 创建及使用插件
    • 插件的参数
    • 插件的扩展
  • 总结

如何使用插件?

插件的定义

插件是一个 JavaScript 对象,通常包含以下几个选项:

  • install:一个函数,接受 Vue 构造器作为参数,可以用于添加全局功能。

创建及使用插件

components文件夹下创建一个js,命名:plugins,这里命名没有强制,但还是尽量遵循规范。

在这里插入图片描述

plugins.js中定义函数并将其暴露出去,在install函数中自定义输出。

在这里插入图片描述

export default {
    install(){
        console.log('install..')
    }
}

main.js中引入plugins.js,通过use方法使用插件。

在这里插入图片描述

import plugins from './plugins'
Vue.use(plugins)

启动项目并查看控制台有执行输出即可。

在这里插入图片描述

插件的参数

install收到参数,并进行输出,控制台输出了Vue的构造函数。

在这里插入图片描述

插件的扩展

扩展1: 接上一篇文章,在插件中定义混入
Vue | 混入

在这里插入图片描述

export default {
    install(Vue){
        console.log('install..',Vue)
        //定义混入
        Vue.mixin({
            data(){
                return{
                    x:100,
                    y:80
                }
            }
        })
    }
}

通过浏览器插件可以看到Vue插件将数据定义到全局中了。

在这里插入图片描述

扩展2:定义全局过滤器,例如:截取字符串

  • plugins.js
//全局过滤器
Vue.filter('mySlice',function(value){
    return value.slice(0,4);
});
  • 使用全局过滤器的.vue文件
<!-- 使用全局过滤器 -->
<h1>公司名称:{{ name | mySlice}}</h1>
  • 效果如下:公司名称通过过滤器被截断

在这里插入图片描述

扩展3:全局指令,文本框自动获取焦点

  • plugins.js
//全局指令
Vue.directive('fbind',{
    //指令与元素成功绑定时(一上来)
    bind(element,binding){
        element.value = binding.value;
    },
    //指令所在元素被插入页面时
    inserted(element,binding){
        element.focus();
    },
    //指令所在的模板被重写解析时
    update(element,binding){
        element.value = binding.value;
    },
});
  • 使用全局指令.vue文件
<input type="text" v-fbind:value="title">
<br /><br />
<input type="text" value="我没有焦点">
  • 效果如下:文本框自动获取焦点,切换文本框后刷新页面焦点也会重置
    在这里插入图片描述

扩展4:给Vue原型上添加一个方法,这样vm和vc就都能用

  • plugins.js
Vue.prototype.hello = ()=>{alert('泥嚎');};
  • 使用全局过滤器的.vue文件
<button ="test">点我测试全局指令的方法</button>

 methods:{
    test(){
      this.hello();
    },
  },
  • 效果如下:点击按钮触发全局指令方法

在这里插入图片描述

总结

  1. 插件的类型
  • 全局插件:通过 Vue.use 注册,可以在任何组件中使用。
  • 局部插件:只在特定组件中使用,通常通过 mixins 或直接在组件中引入。
  1. 插件的实现
  • 扩展功能:可以添加全局方法、属性、过滤器、指令等。
  • 添加组件:可以通过插件注册全局组件。
  1. Vue 3 的变化,在 Vue 3 中,插件的使用方式略有不同,仍然使用 app.use() 方法:
import { createApp } from 'vue';
import MyPlugin from './my-plugin';

const app = createApp(App);
app.use(MyPlugin);
app.mount('#app');
  1. 常见插件
  • Vue Router:用于路由管理。
  • Vuex:状态管理库。
  • Axios:HTTP 请求库。
  1. 插件的最佳实践
  • 保持插件简单明了,避免过多的复杂功能。
  • 确保插件的文档清晰易懂,方便用户使用。
  • 考虑插件的性能和加载速度,尽量减少对主应用的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/884969.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2-107 基于matlab的hsv空间双边滤波去雾图像增强算法

基于matlab的hsv空间双边滤波去雾图像增强算法&#xff0c;原始图像经过光照增强后&#xff0c;将RGB转成hsv&#xff0c;进行图像增强处理&#xff0c;使图像更加清晰。程序已调通&#xff0c;可直接运行。 下载源程序请点链接&#xff1a; 2-107 基于matlab的hsv空间双边滤…

论文阅读 | 可证安全隐写(网络空间安全科学学报 2023)

可证安全隐写&#xff1a;理论、应用与展望 一、什么是可证安全隐写&#xff1f; 对于经验安全的隐写算法&#xff0c;即使其算法设计得相当周密&#xff0c;隐写分析者&#xff08;攻击者&#xff09;在观察了足够数量的载密&#xff08;含有隐写信息的数据&#xff09;和载体…

推荐4款2024年热门的PDF转ppt工具

有时候&#xff0c;我们为了方便&#xff0c;需要将PDF里面的内容直接转换的PPT的格式&#xff0c;既方便自己演示和讲解&#xff0c;也让我们可以更加灵活的进行文件的编辑和修改。如果大家不知道要如何进行操作的话&#xff0c;我可以为大家推荐几个比窘方便实用的PDF转换工具…

html TAB、table生成

1. 代码 <!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 10px solid #ccc; padding: 30px; mar…

赛氪作媒体支持单位受邀参加首届科普翻译与跨学科专业学术研讨会

2024年9月22日&#xff0c;正值全国科普日之际&#xff0c;首届科普翻译与跨学科专业学术研讨会在上海健康与营养研究所信息中心励志厅成功举行并圆满结束。此次研讨会汇聚了来自全国各地的近60名专家学者、学界及企业界代表&#xff0c;共同探讨科普翻译与跨学科专业的发展。作…

BaseCTF2024 web

Web [Week1] HTTP 是什么呀 GET: ?basectf%77%65%31%63%25%30%30%6d%65POST: BaseflgX-Forwarded-For:127.0.0.1Referer: BaseCookie: c00k13i cant eat itUser-Agent: Base有Location跳转, 抓包得到flag: QmFzZUNURntkZGUzZjA0Yy1hMDg5LTQwNGMtOTFjNi01ODZjMzAxMzM3Y2J9Cg…

Springboot jPA+thymeleaf实现增删改查

项目结构 pom文件 配置相关依赖&#xff1a; 2.thymeleaf有点类似于jstlel th:href"{url}表示这是一个链接 th:each"user : ${users}"相当于foreach&#xff0c;对user进行循环遍历 th:if进行if条件判断 {变量} 与 ${变量}的区别: 4.配置好application.ym…

基于SpringBoot+Vue+MySQL的体育商城系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网的飞速发展&#xff0c;电子商务已成为人们日常生活中不可或缺的一部分。体育用品市场作为其中的一个重要分支&#xff0c;也逐渐向线上转移。基于SpringBootVueMySQL的体育商城系统应运而生&#xff0c;旨在通过构建…

E34.【C语言】位段练习题

1.题目 分析下列代码中位段在内存中的排布(已知测试平台为VS2022) struct S {int a : 2;int b : 5;int c : 10;int d : 30; };int main() {struct S s { 0 };return 0; } 有关位段的知识点见64.【C语言】再议结构体(下)文 2.提示 VS满足:由低地址向高地址存储,按浪费空间…

Halo 专业版,含推荐码

立即体验 准备好体验 Halo 了吗&#xff1f;你可以查阅我们完整的部署文档&#xff0c;或者在线使用 Demo 进行体验。 部署指南&#xff1a;www.halo.run Halo 专业版在购买界面输入优惠码&#xff1a; lqMawh8t 使用优惠码优惠码购买专业版&#xff0c;单件 7 折&#xff…

【在Linux世界中追寻伟大的One Piece】进程间通信

目录 1 -> 进程间通信介绍 1.1 -> 进程间通信目的 1.2 -> 进程间通信发展 1.3 -> 进程间通信分类 1.3.1 -> 管道 1.3.2 -> System V IPC 1.3.3 -> POSIX IPC 2 -> 管道 2.1 -> 什么是管道 2.2 -> 匿名管道 2.3 -> 实例代码 2.4 -…

Java | Leetcode Java题解之第436题寻找右区间

题目&#xff1a; 题解&#xff1a; class Solution {public int[] findRightInterval(int[][] intervals) {int n intervals.length;int[][] startIntervals new int[n][2];int[][] endIntervals new int[n][2];for (int i 0; i < n; i) {startIntervals[i][0] inter…

回归预测 | Matlab基于SO-SVR蛇群算法优化支持向量机的数据多输入单输出回归预测

回归预测 | Matlab基于SO-SVR蛇群算法优化支持向量机的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-SVR蛇群算法优化支持向量机的数据多输入单输出回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab基于SO-SVR蛇群算法优化支持向量机的数据多…

828华为云征文|华为云Flexus云服务器X实例——部署EduSoho网校系统、二次开发对接华为云视频点播实现CDN加速播放

EduSoho 是一款功能强大的网校系统&#xff0c;能够帮助教育机构快速搭建在线学习平台。本文将详细介绍如何在华为云服务器上安装和部署 EduSoho 网校系统&#xff0c;以及二次开发对接华为云视频点播VOD来实现CDN加速播放。 edusoho本地存储的视频播放存在诸多弊端。一方面&a…

建立分支提交代码

git分支 git branch 产看当前分支 git branch -a 查看所有分支 git checkout 分支名 切换分支 git checkout -b 分支名 建立分支&#xff08;仅仅是在本地建立了&#xff0c;并没有关联线上&#xff09; git push --set-upstream origin 分支名 把本地分支推到先线上 gti add …

Spring Boot 整合MyBatis-Plus 实现多层次树结构的异步加载功能

文章目录 1&#xff0c;前言2&#xff0c;什么是多层次树结构&#xff1f;3&#xff0c;异步加载的意义4&#xff0c;技术选型与实现思路5&#xff0c;具体案例5.1&#xff0c;项目结构5.2&#xff0c;项目配置&#xff08;pom.xml&#xff09;5.3&#xff0c;配置文件&#xf…

天龙八部怀旧单机微改人面桃花+安装教程+GM工具+虚拟机一键端

今天给大家带来一款单机游戏的架设&#xff1a;天龙八部怀旧单机微改人面桃花。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xf…

Excel 设置自动换行

背景 版本&#xff1a;office 专业版 11.0 表格内输入长信息&#xff0c;发现默认状态时未自动换行的&#xff0c;找了很久设置按钮&#xff0c;遂总结成经验帖。 操作 1&#xff09;选中需设置的单元格/区域/行/列。 2&#xff09;点击【开始】下【对齐方式】中的【自动换…

JUC高并发编程4:集合的线程安全

1 内容概要 2 ArrayList集合线程不安全 2.1 ArrayList集合操作Demo 代码演示 /*** list集合线程不安全*/ public class ThreadDemo4 {public static void main(String[] args) {// 创建ArrayList集合List<String> list new ArrayList<>();for (int i 0; i <…

【有啥问啥】具身智能(Embodied AI):人工智能的新前沿

具身智能&#xff08;Embodied AI&#xff09;&#xff1a;人工智能的新前沿 引言 在人工智能&#xff08;AI&#xff09;的进程中&#xff0c;具身智能&#xff08;Embodied AI&#xff09;正逐渐成为研究与应用的焦点。具身智能不仅关注于机器的计算能力&#xff0c;更强调…