首页 > 其他分享 >Vue2(笔记30) - 脚手架 - 插件

Vue2(笔记30) - 脚手架 - 插件

时间:2022-12-10 16:02:00浏览次数:70  
标签:插件 30 name 提示 xxx value Vue Vue2

插件

Vue的插件功能可以整合之前所有的全局配置,也支持传参,使用起来比较强大;

Vue 的插件,本质上是一个 对象;要求这个对象中,必须包含 install() 方法;

第一步:定义一个插件文件;

pubPlugin.js (名字随便取的)

export default {
install(Vue,x,y,z){
console.log('插件就绪',x,y,z)
// 全局过滤器
Vue.filter('mySlice',function(value){
return value.slice(0,5)
})
// 全局自定义指令
Vue.directive('fbind',{
bind(element,binding){
element.value = binding.value
},
inserted(element){
element.focus()
},
update(element,binding){
element.value = binding.value
}
})
// 全局定义混入
Vue.mixin({
data(){
return{
year:2023
}
}
})
// 全局定义原型方法
Vue.prototype.hello = ()=> console.log('欢迎学习Vue!');
}
}

提示1:定义插件的固定语法: ​install(Vue){}​,所有的配置都写在这个方法里,这个方法默认参数是 Vue 构造函数,等于把整个 Vue 都给了,所以可以干什么事情;

提示2:之前学到的 过滤器、自定义指令、混入和原型方法都可以写在插件里;

第二步:在mian.js 中引入并使用;

import Vue from 'vue'
import App from './App.vue'
import pubPlugin from './pubPlugin' // 引入插件
Vue.config.productionTip = false
Vue.use(pubPlugin,100,200) // 使用插件

new Vue({
render: h => h(App),
}).$mount('#app')

提示1:引入插件的方法  import xxx from './xxx' ;

提示2:使用插件的方法  Vue.use(xxx) ,有几个插件就调用几次;

提示3:使用插件可以传参,默认第一个参数是 Vue;

第三步:在各子组件中调用插件的能力;

​在子组件中分别应用插件的各项能力。

在 school.vue 中使用插件能力:

<template>
<div class="demo">
<h2>学校名称:{{ name | mySlice}}</h2>
<h2>学校地址:{{ address }}</h2>
<h2>学年:{{year}}</h2>
</div>
</template>

<script>
export default {
name: "schoolInfo",
data() {
return {
name:"51cto.com",
address:"北京",
};
}
};
</script>

提示1:在 name 上使用管道过滤器,只显示 name 的前5位字符;

提示2:使用混入属性 year ,显示学年信息;

看下效果:

Vue2(笔记30) - 脚手架 - 插件_插件

提示1:插件中的 console.log 执行了,“插件就绪”;

提示2:学校名称 51cto.com 通过管道过滤器只显示了前5个:51cto

提示3:混入的属性 year 也显示了;

Vue2(笔记30) - 脚手架 - 插件_插件_02


在组件 student.vue 中使用插件的能力:

<template>
<div class="demo">
<h2>学员名称:{{ name }}</h2>
<h2>学员年龄:{{ age }}</h2>
<input type="text" v-fbind:value="name">
<button @click="hello">点击按钮欢迎</button>
</div>
</template>

<script>
export default {
name: "studentInfo",
data() {
return {
name: "Jack",
age: 18,
}
}
};
</script>

提示1:给 input 上绑定自定义事件,自动获取焦点;

提示2:点击按钮执行 hello 方法;

看下效果:

Vue2(笔记30) - 脚手架 - 插件_Vue_03

刷新页面时,input 获取到焦点,点击按钮,输出欢迎语;


写个 plugin.js ,把若干方法整合到一起并应用全局,增强了Vue的实用性;

插件总结:

功能:用于增加Vue;

本质:包含 install 方法的一个对象,install 的第一个参数是 Vue,第二个以后的参数是插件使用者传递的数据;

定义插件:

对象.install = function(Vue,options){
Vue.filter(...)
Vue.directive(...)
Vue.mixin(...)
Vue.prototype.$myMethod = function(){...}
Vue.prototype.$myProperty = xxx
}

引入插件:

import xxx from './xxx'

使用插件:

Vue.use(xxx)


标签:插件,30,name,提示,xxx,value,Vue,Vue2
From: https://blog.51cto.com/ahuiok/5927728

相关文章

  • vue2 基础
    一、什么是vue构建用户界面用vue网html页面中填充数据。框架框架是一套现场的解决方案,程序员必须遵守框架的语法,去编写业务代码。学习vue,即学习vue框架......
  • Vue2(笔记29) - 脚手架 - mixin混入
    mixin混入所谓混入,就是几个组件共享一个配置,可局部混入,也可全局混入;第一步:先建个混入文件,配置写进去,再export 出来;新建mixin.js 文件: exportconstcommonConfig={......
  • VSCode离线安装插件报错Unable to install extension 'formulahendry.code-runner' as
    1.将下载好的插件放到D:\MicrosoftVSCode\bin下然后shift+右键输入命令code--install-extension文件名,安装失败2.把插件.visx改为.zip,打开插件找到package.jso......
  • PS/LR滤镜插件套装 Nik Collection v5.3.0 Win/Mac
    NikCollection4,其包含了八款PS插件,可提供近200种高质量的创意效果以及一系列创新的图像编辑工具,只需单击一下即可使用,同时为您提供无损编辑以实现全面控制。功能涵盖修图......
  • UE4 WebUI插件使用指南
    在开发数字孪生应用程序的时候,除了三维场景展示之外,也需要开发丰富和酷炫的2D页面。使用UE4的UMG开发图表显得比较笨拙。而通过Web插件允许开发者创建丰富的基于WebHTML5......
  • SAK-TC364DP-64F300W AA汽车MCU、SAK-TC375TP-96F300W AA特点概述
    1、SAK-TC364DP-64F300WAA汽车32位微控制器MCU封装:LQFP144批次:新年份说明:SAK-TC364DP-64F300WAA属于AURIX™TC36xDP家族。AURIX™第二代(TC3xx)在性能、内存大小、连接......
  • 每日食词—day030
    soasto以便、为了、使得leastadj. adv. n. pron. det.最少、最少量、最无足轻重的rearn. adj. v. adv.后方、后面、背面nativeadj. n.原生、本地的、本......
  • 你必须记住的30个CSS选择器?
    你学会了基本的id,class类选择器和descendant后代选择器,然后就觉得完事了吗?如果这样,你就会错过许多灵活运用CSS的机会。虽然本文提到的许多选择器都属于CSS3,并且只能在现代......
  • 《动手学ROS2》9.3为FishBot配置两轮差速控制插件
    《动手学ROS2》9.3为FishBot配置两轮差速控制插件本系列教程作者:小鱼公众号:鱼香ROSQQ交流群:139707339教学视频地址:小鱼的B站​完整文档地址:鱼香ROS官网版权声明:如非允......
  • 多款jquery autocomplete插件收藏
    最近研究了下jqueryautocommplete和jqueryuiautocomplete,发觉还是用jqueryuiautocomplete比较好,功能简单易用,但同时也关注了下面的这个免费插......