Vue.js 插件
1.前言
vue的插件其实通过操作Vue这个对象,为其扩展新的功能。例如:
// 1. 添加全局方法或 property
Vue.myGlobalMethod = function () {
// 逻辑...
}
// 2. 添加全局资源
Vue.directive('my-directive', {
bind (el, binding, vnode, oldVnode) {
// 逻辑...
}
...
})
// 3. 注入组件选项
Vue.mixin({
created: function () {
// 逻辑...
}
...
})
// 4. 添加实例方法
Vue.prototype.$myMethod = function (methodOptions) {
// 逻辑...
}
2.插件的封装
- 要拿到Vue这个对象,不同的模式有不一样的方法:
- 在普通模式中,Vue框架以script标签的形式引入之后,Vue作为全局变量,插件直接对他进行操作即可。
- 在脚手架模式中,各个模块是相互独立的,其他模块无法直接读取Vue这个对象。虽然可以通过import方式引入Vue进行操作,这是这样不符合规范。
- 实际的做法是:定义一个函数,在函数内部对Vue进行操作。插件定义一个install方法,当执行Vue.use(plugin) 是,则执行这个install方法
- 如果plugin是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。
- 该方法需要在调用 new Vue() 之前被调用。
- 当 install 方法被同一个插件多次调用,插件将只会被安装一次。
3.简单的实例:编写一个添加自定义指令和过滤器的插件
- 非模块化模式:
//确保在这之前已经通过script标签引入了Vue
//添加全局的自定义指令 全部转换成大写
Vue.directive('upper-text',function(el,binding){
el.innerText = binding.value.toUpperCase();
})
//添加全局过滤器 全部转换成小写
Vue.filter('toLowerCase',function(val){
return val.toLowerCase()
})
- 模块化模式:
//1.创建一个对象
const myPlugin = {}
//为其添加install方法,接收Vue这个参数
myPlugin.install = function(Vue){
//测试
console.log('install方法执行了')
//添加全局的自定义指令
Vue.directive('upper-text',function(el,binding){
el.innerText = binding.value.toUpperCase();
})
//添加全局过滤器
Vue.filter('toLowerCase',function(val){
return val.toLowerCase()
})
}
//暴漏该对象
export default myPlugin
//入口文件
import Vue from 'vue'
import App from './App'
import myPlugin from './plugin/myPlugin.js'
////执行myPlugin.install(Vue)
Vue.use(myPlugin)
- 使用插件
<body>
<div id="app">
<!-- 默认 -->
<p v-html="msg"></p>
<!-- 使用插件的自定义指令 -->
<p v-upper-text="msg"></p>
<!-- 使用过滤器 -->
<p>{{msg | toLowerCase}}</p>
</div>
</body>
执行结果:
<div id="app">
<p>Good Life</p>
<p>GOOD LIFE</p>
<p>good life</p>
</div>
4.添加实例方法
- 在脚手架项目中,组件要用axios时,需要在组件中重新引用,如果在入口js文件中引入一次axios,并挂在到Vue原型链中,那么后面所有的组件都能访问这个对象,无需再次引用。
import Vue from 'vue'
//引入axios
import axios from 'axios'
//创建实例
const ajax = axios.create({
baseURL: 'https://api.example.com'
})
//将实例挂在到原型链中
Vue.prototype.$ajax = ajax
app.vue
<script>
export default {
data(){
return {
msg:'Good Life'
}
},
created(){
this.$ajax.get('/api/getMsg').then(res => {
console.log(err)
}).catch(err => {
console.log(err)
})
}
}
</script>
Vue.js 插件的更多相关文章
- vue.js插件使用(01) vue-resource
本文的主要内容如下: 介绍vue-resource的特点 介绍vue-resource的基本使用方法 基于this.$http的增删查改示例 基于this.$resource的增删查改示例 基于int ...
- vue.js插件使用(02) vue-router
概述 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用.vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来.传统的 ...
- vue.js及项目实战[笔记]— 03 vue.js插件
一. vue补充 1. 获取DOM元素 救命稻草,document.querySelector 在template中标示元素`ref = "xxx" 在要获取的时候,this.$r ...
- IDEA安装vue.js插件后,new没有Vue component
首先要安装vue相关的插件vue.js 但是很多人安装vue.js右键发现没有vue Componment,解决方法如下 Settings>Editor>File and Code Tem ...
- idea vue.js插件安装
Vue.js for IntelliJ IDEA-based IDEs This plugin provides support for Vue.js in IntelliJ IDEA Ultimat ...
- sublime中如何安装vue.js插件,并使代码高亮显示
前提概要: sublime的下载地址:http://www.sublimetext.com/ notepad++下载地址:https://notepad-plus-plus.org/ .vue的文件在 ...
- webStrom2017.1版本如何添加vue.js插件
第一步:打开webStrom-setting 第二步:选择File and Code Templates--点击左上角"+"号 第三步:在Name:vue File Exte ...
- PHPstorm如何安装vue.js插件
1.什么是PHPstorm? PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查.----来自百度百科 一句话:P ...
- Vue.Js添加自定义插件
基于上篇我们讲了 在window下搭建Vue.Js开发环境 我们可以开发自己的vue.js插件发布到npm上,供大家下载使用. 1.首先打开cmd命令窗口,进入我们的工作目录下 执行 cd E:\vu ...
- 前端开发之走进Vue.js
Vue.js作为目前最热门最具前景的前端框架之一,其提供了一种帮助我们快速构建并开发前端项目的新的思维模式.本文旨在帮助大家认识Vue.js,了解Vue.js的开发流程,并进一步理解如何通过Vue.j ...
随机推荐
- 合合信息旗下启信宝与鹏城实验室达成数据托管合作,“AI靶场”让数据管理更精准
合合信息旗下启信宝与鹏城实验室达成数据托管合作,"AI靶场"让数据管理更精准 数字经济时代,数据已成为新型生产要素.通过"数据托管"等形式对数据进行集中管理 ...
- Asp.net core 学习笔记之 globalization & localization 复习篇
更新: 2022-03-22 修订版: ASP.NET Core – Globalization & Localization 更新: 2021-06-15 之前有说过, 我没有使用默认的 f ...
- 76.最小覆盖子串 Golang实现
题目描述: 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" . 注意: 对于 t ...
- 信创环境经典版SuperMap iManager监控外部SuperMap iServer资源失败,无法监控目标GIS服务器CPU与内存使用情况
一.问题环境 操作系统:银河麒麟kylin V10 CPU:鲲鹏920 SuperMap iServer 10.2.0 SuperMap iManager 10.2.1 二.现象 部署完经典版Supe ...
- Spark集群的安装及高可用配置
spark官网学习文档 Spark集群的安装及高可用配置 前期需求:Hadoop和Scala必须已经安装完成 步骤: ①进入spark下载网站中https://spark.apache.org/dow ...
- JSP+Java编程资源
<JSP+Servlet+Tomcat应用开发从零开始学(第2版)>源码课件视频下载地址: https://pan.baidu.com/s/1HkFRul3wYBxe-skXCoQPwg ...
- 《你必须掌握的Entity Framework 6.x与Core 2.0》代码下载
https://item.jd.com/12376014.html<你必须掌握的Entity Framework 6.x与Core 2.0>代码下载,共享代码: https://git ...
- 征服 Docker 镜像访问限制:KubeSphere v3.4.1 成功部署全攻略
近期,KubeSphere 社区的讨论中频繁出现关于 Docker 官方镜像仓库访问受限的问题. 本文旨在为您提供一个详细的指南, 展示在 Docker 官方镜像访问受限的情况下,如何通过 KubeK ...
- 开启 Calico eBPF 数据平面实践
简介 Calico 从 v3.13 开始,集成了 eBPF 数据平面. 关于什么是 eBPF, 以及 Calico 为什么引入了 eBPF , 并不是本篇文章的重点,感兴趣的朋友可以自行阅读相关文档. ...
- shiro 框架基本讲解【转载】
shiro 框架基本讲解[转载] 什么是权限管理: 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而 ...