vue封装相关知识
-
Vue封装Swiper实现图片轮播图片轮播是前端中经常需要实现的一个功能。最近学习Vue.js,就针对Swiper进行封装,实现一个简单的图片轮播组件。一、Swiper在实现封装之前,先介绍一下Swiper。Swiper是纯Javascript打造的滑动特效插件,面向手机、平板电脑等移动终端。Swiper能实现触屏焦点图、触屏Tab切换、触屏多图切换等常用效果。Swiper开源、免费、稳定、使用简单、功能强大,是架构移动终端网站的重要选择。Swiper的应用场景广泛,实现效果很好,下面个这实际案例就是Swiper的典型应用场景。Swiper的具体使用教程及详细API,参考Swiper中文网。二、Vue组件Vue组件设计初衷就是要配合使用的,提高维护性和复用性。而图片轮播正适合使用组件来完成,因此在介绍具体的实现之前,先介绍下关于Vue组件及组件通信。Vue组件中最常见的就是形成父子组件的关系:组件 A 在它的模板中使用了组件 B。它们之间必然需要相互通信:父组件可能要给子组件下发数据,子组件则可能要将它内部发生的事情告知父组件。然而,通过一
-
用vue封装插件并发布到npm一、基于vue的国家区号列表vue-flag-list包含了大部分国家的区号,点击右边的三角形展开列表可以选择国家区号,若列表中没有区号,也可以自己输入区号。全球区号列表1.1 初始化组件用的是vue-cli来初始化组件,虽然有很多东西不需要,因为对这个比较熟悉,所以还是按照这个步骤来。vue init webpack vue-flag-listcd vue-flag-listcnpm install npm run dev1.2 根据自己的需求,实现具体功能,我的主要功能写在vue-flag-list.vue组件中。<template> <div id="flag"> ... </div></template><script> &n
-
vue 封装cookie,请求,登录拦截,接口拦截作者:陈88原文链接:https://segmentfault.com/a/1190000015278958一:封装Cookie方法在util文件夹下,我们创建util.js文件,然后上代码//设置cookieexport function setCookie (c_name, value, expire) { var date = new Date() date.setSeconds(date.getSeconds() + expire) document.cookie = c_name + "=" + escape(value) + ";&n
-
vue组件封装共用的方法这里提供两种vue封装共用组件的方法方法一:main.js中import ListItem from './components/list.vue'//封装共用组件方法一 Vue.component('ListItem',ListItem)方法二:新建vue文件的时候再建个相应的js文件。component.jsimport child from './component.vue' export default child.install = function (Vue) { Vue.component(child.name,child) }main.js中import child from './components/component/component.js'//封
vue封装相关课程
vue封装相关教程
- Java 封装 上一小节中,我们已经对类和对象有了一个基本的认识。不止于 Java,在各个面向对象语言的书籍资料中,都会提到面向对象的三大特征:封装、继承、多态。本小节我们就从封装开始,探讨面向对象的特征。本小节我们将学习什么是封装、为什么需要封装,最后也会以一个 NBA 球员类的案例来实现封装。
- 2. 为什么需要封装 封装具有以下优点:封装有利于提高类的内聚性,适当的封装可以让代码更容易理解与维护;良好的封装有利于降低代码的耦合度;一些关键属性只允许类内部可以访问和修改,增强类的安全性;隐藏实现细节,为调用方提供易于理解的接口;当需求发生变动时,我们只需要修改我们封装的代码,而不需要到处修改调用处的代码。
- 3.1 封装性 内部类的成员通过外部类才能访问,对成员信息有更好的隐藏,因此内部类实现了更好的封装。
- 4. axios 库封装 在真实的项目中会经常使用到 axios 这样的 ajax 请求的库,虽然可以直接使用,但是往往业务中会有很多接口请求的地方,而这么多的请求有些固定不变的,每个接口在请求时都需要,如:token,baseURL,timeout 等等,针对这样的场景,我们可以对 axios 库进行二次业务封装。对于接口不同的返回结果我们希望有一个全局的提示框,这里我们使用 element-ui 组件库搭配使用。封装后的代码如下:import axios from 'axios';import { baseURL } from '@/config'class Http { constructor(baseUrl) { this.baseURL = baseURL; this.timeout = 3000; } setInterceptor(instance) { instance.interceptors.request.use(config => { return config; }); instance.interceptors.response.use(res => { if (res.status == 200) { return Promise.resolve(res.data); } else { return Promise.reject(res); } }, err => { return Promise.reject(err); }); } mergeOptions(options) { return { baseURL: this.baseURL, timeout: this.timeout, ...options } } request(options) { const instance = axios.create(); const opts = this.mergeOptions(options); this.setInterceptor(instance); return instance(opts); } get(url, config = {}) { return this.request({ method: 'get', url: url, ...config }) } post(url, data) { return this.request({ method: 'post', url, data }) }}export default new Http;
- 4.1 安装 vue-cli npm install -g @vue/cli
- 3. 实现封装 在 Java 语言中,如何实现封装呢?需要 3 个步骤。修改属性的可见性为private;创建公开的 getter 和 setter 方法,分别用于属性的读写;在 getter 和 setter 方法中,对属性的合法性进行判断。我们来看一个 NBA 球员类NBAPlayer:class NBAPlayer { // 姓名 String name; // 年龄 int age;}在类内部(即类名后面{}之间的区域)定义了成员属性name和age,我们知道,在类外部调用处可以对其属性进行修改:NBAPlayer player = new NBAPlayer();player.age = -1;如下是实例代码:540运行结果:球员年龄为:-1我们通过对象名.属性名的方式对age赋值为 -1,显然,球员的年龄为-1是反常理的。下面我们对NBAPlayer类进行封装。我们可以使用私有化访问控制符修饰类内部的属性,让其只在类的内部可以访问:// 用private修饰成员属性,限定只能在当前类内部可以访问private String name;private int age;private关键字限定了其修饰的成员只能在类内部访问,这样之后就无法在类外部使用player.age =-1这样的赋值方式进行赋值了。创建公开的(public) getter 和 setter方法:// 通常以get+属性名的方式命名 getter,返回对应的私有属性public String getName() { return name;}// 通常以set+属性名的方式命名 setter,给对应属性进行赋值public void setName(String name) { this.name = name;}public int getAge() { return age;}public void setAge(int age) { this.age = age;}顾名思义,getter就是取属性值,setter就是给属性赋值,这样在类的外部就可以通过调用其方法对属性进行操作了。对属性进行逻辑判断,以age属性的setter方法为例:public void setAge(int age) { // 判断参数age的合法性 if(age < 0) { this.age = 0; } else { this.age = age; }}在setAge方法中,我们将参数age小于 0 的情况进行了处理,如果小于 0,直接将age赋值为0。除了给默认值的方式,我们也可以抛出异常,提示调用方传参不合法。在类外部对属性进行读写:NBAPlayer player = new NBAPlayer();// 对属性赋值:player.setName("詹姆斯");player.setAge(35);// 获取属性:System.out.println("姓名:" + player.getName());System.out.println("年龄:" + player.getAge());试想,如果在类外部,有很多地方都会操作属性值,当属性值读写逻辑发生改变时,我们只需修改类内部的逻辑。另外,对于有参构造方法中,对属性赋值时,直接调用其setter方法。无需再写重复的逻辑判断,提高代码复用性:public NBAPlayer(int age) { this.setAge(age);}如下是实现封装后完整实例代码:541运行结果:姓名:詹姆斯年龄:35-------------姓名:乔丹年龄:60
vue封装相关搜索
-
vacuum
vagrant
val
validationgroup
validationsummary
vals
valueof
values
vant
variables
vb
vb if else
vb if语句
vb net
vb net 教程
vb net 数据库
vb net教程
vb net下载
vb 教程
vb 数组