热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vue知识点整理(三)Vue脚手架(3)插件、scoped样式

目录一、插件二、scoped样式一、插件功能:用于增强Vue本质:包含install方法的一个对象,install的第一个参数是V

目录

一、插件

二、scoped样式




一、插件

功能:用于增强Vue

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

定义插件:

对象.install = function (Vue, options){// 1. 全局过滤器Vue.filter(...)// 2. 添加全局指令Vue.directive(...)// 3. 配置全局混入(合)Vue.mixin(...)// 4. 添加实例方法Vue.prototype.$myMethod = function() {...}Vue.prototype.$myProperty = xxx
}

使用插件:

Vue.use()

采用默认暴露有两种写法

第一种写法:

const obj = {install(Vue,参数1,参数2,...) {// 1. 全局过滤器Vue.filter(...)// 2. 添加全局指令Vue.directive(...)// 3. 配置全局混入(合)Vue.mixin(...)// 4. 添加实例方法Vue.prototype.$myMethod = function() {...}Vue.prototype.$myProperty = xxx},
};export default obj;​

第二种写法(简写):

export default {install(Vue,参数1,参数2,...) {// 1. 全局过滤器Vue.filter(...)// 2. 添加全局指令Vue.directive(...)// 3. 配置全局混入(合)Vue.mixin(...)// 4. 添加实例方法Vue.prototype.$myMethod = function() {...}Vue.prototype.$myProperty = xxx},
};

简单案例练习

plugins.js -- 定义插件

export default {install(Vue) {// 全局过滤器Vue.filter("mySlice", function (value) {return value.slice(0, 4);});// 定义全局指令Vue.directive("fbind", {bind(element, binding) {element.value = binding.value;},inserted(element, binding) {element.focus();},updated(element, binding) {element.value = binding.value;},});// 定义混入Vue.mixin({data() {return {x: 1,y: 2,};},});// 给Vue原型上添加方法 (vm和vc都可以使用)Vue.prototype.hello = () => {alert("hello world");};},
};

main.js -- 引入并使用插件(plugins)

// 引入Vue
import Vue from "vue";
// 引入App
import App from "./App.vue";
// 引入插件
import plugins from "./plugins";
// 使用插件
Vue.use(plugins);Vue.config.productionTip = false;// 创建vm
new Vue({el: "#app",render: (h) => h(App),
});

Game.vue -- 使用plugins.js中的全局过滤器和定义的hello方法

 由图可看出,游戏名只截取了前4个字,且点击按钮能够实现弹窗

Player.vue - 使用plugins.js中的全局指令


由图可看出input框获取到了name值 

plugins.js中的定义混入(mixin)体现

由图可看出,Vue实例每一层data数据内都有x和y


二、scoped样式

作用:让样式在局部生效,防止冲突

写法:

简单案例练习

让Game组件和Player组件命名相同class,并设置不同背景色

Game.vue


Player.vue


由下方图示可看出,即使class命名相同,添加了scoped样式后,两个组件的样式渲染上处于独立的

而如果没有添加scoped样式,则会出现覆盖的情况。最终展示样式渲染,取决于在App.vue中引入的先后顺序,后面引入组件的在class命名相同的情况下,会覆盖前面引入的组件

App.vue


由图示可看出,最终样式背景色渲染取决于Game.vue组件


推荐阅读
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • Vue3中setup函数的参数props和context配置详解
    本文详细介绍了Vue3中setup函数的参数props和context的配置方法,包括props的接收和配置声明,以及未通过props进行接收配置时的输出值。同时还介绍了父组件传递给子组件的值和模板的相关内容。阅读本文后,读者将对Vue3中setup函数的参数props和context的配置有更深入的理解。 ... [详细]
  • 本文介绍了如何使用elementui分页组件进行分页功能的改写,只需一行代码即可调用。通过封装分页组件,避免在每个页面都写跳转请求的重复代码。详细的代码示例和使用方法在正文中给出。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • PHP反射API的功能和用途详解
    本文详细介绍了PHP反射API的功能和用途,包括动态获取信息和调用对象方法的功能,以及自动加载插件、生成文档、扩充PHP语言等用途。通过反射API,可以获取类的元数据,创建类的实例,调用方法,传递参数,动态调用类的静态方法等。PHP反射API是一种内建的OOP技术扩展,通过使用Reflection、ReflectionClass和ReflectionMethod等类,可以帮助我们分析其他类、接口、方法、属性和扩展。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
author-avatar
美妹慈心b
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有