创建vue项目(二)引入elementUi、axios、准备静态资源、封装组件(.vue,js代码等)

下载安装node -> vue-cli -> 配置路由 -> 引入elementUi -> 公共组件
一、引入elementUi 顺便一提axios使用说明 和axios在vue中使用
二、准备静态资源
三、封装.vue公共组件
四、封装.js公共组件
五、封装公共的js代码
六、封装全局的filter、directive等


一、引入elementUi

elementUI官网

1. 安装:npm i element-ui -S
2. 在 main.js 中引入:

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI);

二、准备静态资源

如下图在 public 文件夹下新增,在 public 下的 index.html 中引入
在这里插入图片描述

三、封装.vue公共组件

(这里以公共的 header 为例)

  1. 注册组件: 在 src 文件夹下的 components 文件夹下新增一个 header 文件夹,并在该文件夹下新增 index.vue。这个 index.vue 用来写公共组件的静态页面;
    建议给每个页面加上 name ,这样可以在vue的工具上可以查看到,方便调试。
    在这里插入图片描述

  2. 引入: import引入资源,components注册,

在这里插入图片描述
4. 上面图中”管理系统"是定死的,若想每次显示不同,则用父子通讯 props 属性使用动态数据。
在这里插入图片描述
使用方法:
在这里插入图片描述


四、封装.js公共组件

  1. 准备工作: 在 components 文件夹中 新建一个 Js 文件夹 以及 index.js 文件(这里的 index.js 用来作为 js 组件的集合页),再新建一个你所需要的 js 文件夹并在该文件夹下新建 index.vue 文件,如 MessageBox.
  2. 书写样式: 在index.vue 中书写样式
    在这里插入图片描述
    代码:
<template><div class="message-box"><h2>定位</h2><p>北京</p><div><div>取消</div><div>切换定位</div></div></div>
</template><script>
export default {name:"messageBox"
}
</script><style scoped lang="scss">.message-box{width: 200px;height: 140px;border: 1px solid #ccc;border-radius: 4px;background: #fff;box-shadow: 3px 3px 3px 3px #ccc;position: absolute;left: 50%;top: 50%;margin: -200px 0 0 -100px;z-index:1;h2{text-align: center;line-height: 48px;font-size: 18px;}p{text-align: center;line-height: 40px;}>div{display: flex;position: absolute;bottom:0;width: 100%;border-top:1px #ccc solid;div{flex:1;text-align: center;line-height: 30px;border-right: 1px #ccc solid;}div:last-child{border:0;}}}
</style>

查看效果: 现在任意一个页面中注册使用进行查看
在这里插入图片描述
效果:
在这里插入图片描述
3. js 代码,在 index.js 中完成

import Vue from "vue";
import MessageBox from "./MessageBox";export var messageBox = (function(){ //记住这个messageBox,后面将会调用var defaults = { //默认值title : "", //对应 index.vue 中的定位content : "", //对应 index.vue 中的北京cancel : "", //对应 index.vue 中的取消ok : "", //对应 index.vue 中的切换handleCancel : null, //对应 index.vue 中的取消方法 用null 或者 空函数handleOk : null //对应 index.vue 中的切换方法 用null 或者 空函数};var MyComponent = Vue.extend(MessageBox);return function(opts){ //配置参数(返回调用时的配置参数)for(var attr in opts){defaults[attr] = opts[attr]; //覆盖默认配置}var vm = new MyComponent({el : document.createElement("div"),//作为容器装 index.vue ,此div不会在页面中渲染出来data : {title : defaults.title,content : defaults.content,cancel : defaults.cancel,ok : defaults.ok},methods : {handleCancel(){// 判断defaults.handleCancel是否存在,若存在,则是defaults中的null// 若不存在,执行 && 后的defaults.handleCancel,要拿到组件中的vm对象,所以用到call//不用bind,用bind直接改变了bind指向defaults.handleCancel && defaults.handleCancel.call(this);document.body.removeChild( vm.$el ); //点击完后删掉弹框},handleOk(){defaults.handleOk && defaults.handleOk.call(this);document.body.removeChild( vm.$el ); //点击完后删掉弹框}}});document.body.appendChild( vm.$el );};
})();

记得修改 index.vue 中的字段,让它变成动态的
在这里插入图片描述
4. 使用
在这里插入图片描述
显示结果:
在这里插入图片描述

五、封装公共的js代码

方法一:

  1. 我在 pulic 文件夹下 新建了一个 js 文件夹,里面用来放公共的 js 代码。
  2. 写 js 代码,记得要 export dafult {} 导出,如果用到了 axios 等方法或其他插件,记得要 import 这些插件。例如:
import axios from 'axios';
import ElementUI from 'element-ui';function getProcess(typeCode){console.log(1)axios.get('/api/temp/getParams?typeCode='+typeCode).then(res => {    console.log(res)if( res.status == 200){      }})  .catch(err =>{this.$message.error('服务器响应失败');console.log(err);})
};export default {getProcess
}

注意:在这里不要用 this ,否则会报错
在这里插入图片描述
3. 在 main.js 中引入,并在原型的身上挂载

import commonJS from '../public/js'
Vue.prototype.commonJS = commonJS;
  1. 使用时,this.原型上挂载的名称.方法名。例如:
this.commonJS.getProcess("0001");

方法二:

  1. 在 public 下新建一个 js 文件夹, js 文件下新建一个 index.js 文件用来写公共的 js 代码。
  2. 例如封装一个弹框的 js 代码:
import {MessageBox} from 'element-ui';function handleConfirm(text = "确定执行此操作吗", type='warning'){// 这里 export后面不加 default,引用时:import {方法名} from js文件地址// export后加 default,引用时:import 方法名 from js文件地址// 通过export方式导出,在导入时要加{ },export default则不需要return MessageBox.confirm(text, '提示',{confirmButtonText: '确定',cancelButtonText: '取消',type: type})
}export {handleConfirm}
  1. 组件中使用
import {handleConfirm} from '../../../public/js'methods:{signout(){handleConfirm('确认退出登录吗?','warning').then(res => {this.$router.push('/login');}).catch(err =>{console.log('err',err)})}  
}

六、封装全局的filter、directive等

在 components 文件夹下新建一个 myVue 文件夹,再在这个新建的文件夹下新建 index.js
1. 简单举例,在index.js 中写:

import Vue from 'vue';Vue.directive('color', (el,binding){console.log(el);el.style.coloe = binding.value || '#fff';
})

2. 在 main.js 中注册import '@/components/myVue';

3. 使用: 直接在需要的页面上使用即可。


上一篇:创建vue项目(一)搭建vue-cli、项目文件介绍、简单配置
下一篇:路由跳转…

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring DI的配置使用

1、 依赖和依赖注入 传统应用程序设计中所说的依赖一般指“类之间的关系”&#xff0c;那先让我们复习一下类之间的关系&#xff1a; 泛化&#xff1a;表示类与类之间的继承关系、接口与接口之间的继承关系&#xff1b; 实现&#xff1a;表示类对接口的实现&#xff1b; 依赖&a…

创建vue项目(三)路由跳转、反向代理、本地存储、状态管理

数据更新渲染&#xff0c;axios请求数据&#xff0c;配置环境 一、路由跳转 app.vue <template><div id"app"><keep-alive><router-view/></keep-alive></div> </template><script> export default {name: app }…

jinfo:JVM运行时配置的命令行浏览

在最近的几篇博客中&#xff08;特别是在对Java EE 7性能调优和优化以及WildFly性能调优的书的评论中&#xff09;&#xff0c;我引用了自己过去在某些Oracle JDK命令行工具上的博客文章。 令我震惊的是&#xff0c;我从来没有专门解决过漂亮的jinfo工具&#xff0c;这篇文章旨…

创建vue项目(四)路由相关知识、路由守卫、插槽、打包小细节

一、路由相关点 1. 路由跳转传参以及接参 https://segmentfault.com/a/1190000012393587 方法一&#xff1a; &#xff08;1&#xff09; 参数配置&#xff1a; { path : xx/:参数变量,component:xx}(2) 使用 <router-link toxx/参数></router-link>(3) 传参 …

Luogu5298 [PKUWC2018]Minimax

太久没写博客了&#xff0c;过来水一发。感觉自己推式子的功力还不够。。。 题目链接&#xff1a;洛谷 首先我们想到&#xff0c;考虑每个叶节点的权值为根节点权值的概率。首先要将叶节点权值离散化。 假设现在是$x$节点&#xff0c;令$f_i,g_i$分别表示左/右节点的权值$i$的概…

js封装常用函数

自己封装函数时&#xff0c;参数最好不要超过3个&#xff0c;若要超过&#xff0c;可以用数组或者对象&#xff1b; 1. 利用&#xff08;Math.random&#xff09;写指定范围的随机数 2. 补零 3. 数组去重 4. 排序 5. 敏感词过滤 6. 判断数组中是否存在某一条数据&#xff0c;结…

JPA教程–在Java SE环境中设置JPA

JPA代表Java Persistence API&#xff0c;它基本上是一个规范&#xff0c;描述了一种将数据持久存储到持久存储&#xff08;通常是数据库&#xff09;中的方法。 我们可以将其视为类似于Hibernate的 ORM工具的东西&#xff0c;除了它是Java EE规范的正式组成部分&#xff08;并…

滚动条造成页面抖动问题

总结&#xff1a; 若用到 margin:0 auto; 使页面居中&#xff0c;若部分页面出现滚动条&#xff0c;滚动条默认有 20px&#xff0c;这样会造成页面抖动&#xff1b; 解决办法&#xff1a;参考 1. html{overflow:scoll;} 让页面一直显示滚动条。 overflow 的几个属性值&#xf…

ie 浏览器布局中的 offset

出现原因&#xff1a; 此处的offset的值表示的是盒子模型经过计算后的实际偏移量&#xff0c;通常是margin及定位偏移量之和&#xff08;flex布局导致的偏移也会计算在内&#xff09;。在此处也无需消除。 解决办法&#xff1a; 父元素设置宽高。设置margin为负数&#xff0…

MySQL集群(PXC)入门

一、学习动机 伴随互联网行业的兴起&#xff0c;越来越多的领域需要相应的技术方案&#xff0c;比如&#xff1a;打出软件、电商平台、直播平台、电子支付、媒体社交。 身边常见的&#xff0c;校园出成绩那一年&#xff0c;我们会感觉网站异常的卡顿&#xff0c;因为访问人数太…

滚动条那些事

一、滚动条样式 1. ie8浏览器 名称描述scrollbar-arrow-color三角箭头的颜色scrollbar-face-color立体滚动条的颜色&#xff08;包括箭头部分的背景色&#xff09;scrollbar-3dlight-color立体滚动条亮边的颜色scrollbar-highlight-color滚动条的高亮颜色&#xff08;左阴影&…

Javascript高级程序设计第二版第十四章--异常--笔记

chaepter 14 错误异常分享。 其实主要是就是try{}catch(error){} finally{}这个语句的理解。主要一点&#xff1a;finally 在 return 之后 运行。这跟java里边的如出一辙。 比如&#xff1a;try{return1;}catch(error){return2;} finally{return0;}返回 return 0;然后接着就是 …

HTML引入vue.js,在ie浏览器中不显示

因为只有两个页面&#xff0c;所以我没有用 vue-cli 搭框架&#xff0c;直接在 HTML 中引入vue.js 文件。发现其他浏览器都能正常显示&#xff0c;ie 下显示不正常&#xff0c;而且还报错&#xff0c;错误信息如下&#xff1a; 原因&#xff1a; 主要是因为 ie 不支持 ES6 的语…

具有Infinispan的聚集幂等消费者模式

我创建了一个小项目 &#xff0c;该项目展示了如何将JBoss Infinispan与Apache Camel和幂等消费者模式一起使用&#xff0c;以确保消息不会在集群环境中被处理两次。 假设您有一个应用程序&#xff0c;该应用程序必须通过将其部署在多个容器上才能轻松扩展。 但是应用程序必须…

基于 vue 的验证码组件

登录页面有个验证码&#xff0c;暂时没用到后台&#xff0c;在网上找了两个博客&#xff0c;记录一下。 一、直接写&#xff08;参考-UIEngineer&#xff09; 这个样式比较简单&#xff0c;直接在需要验证码的地方添加就行了。如果这个页面比较复杂&#xff0c;用组件会比较好…

在 HTML 中引入 vue.js 写页面

突然说要写两个页面&#xff08;只有两个页面&#xff0c;不是一个完整的项目。。&#xff09;&#xff0c;有点懵&#xff0c;不知道从哪下手&#xff0c;而且只对 vue 熟悉那么一丢丢&#xff0c;其他框架不是很熟悉。但是没办法鸭&#xff0c;只能硬着头皮去做了&#xff01…

Mschart图表制作

首先一次安装这三个 &#xff08;1&#xff09;.Microsoft .NET Framework 3.5 的 Microsoft 图表控件 &#xff08;2&#xff09;.Microsoft .NET Framework 3.5 语言包的 Microsoft 图表控件 &#xff08;3&#xff09;.Microsoft Chart Controls Add-on for Microsoft Visua…

vue打包后,font格式错误

本地测试没有问题&#xff0c;项目打包以后&#xff0c;浏览器打开控制台&#xff0c;提示font格式错误&#xff1a; 把我的双引号给去掉了。。。-^- 不开心。 解决办法&#xff1a; 1. 把 font: 字体粗细 字体大小/行高 "字体样式"; 分开来写。 改成&#xff1a;…

html笔记(四)弹性盒+响应式

大标题小节一、弹性盒1. 标准盒模型和怪异盒模型2. 弹性盒dipalay3. 与display配合使用的其他属性4. 弹性盒的对齐方式5. 弹性盒的默认特性二、响应式布局1. 媒体查询2. 怎样使用媒体查询3. 优缺点以及使用场景4. Meta 标签的定义5. 常见的属性操作三、多列布局四、移动端布局1…

享受Android应用程序的Java技术盛宴

Java™ 语言是 Android 开发人员所选的工具。Android 运行时使用自己的虚拟机Dalvik&#xff0c;这并不是多数程序开发人员使用的普通Java 虚拟机。Dalvik支持Java 编程语言的大部分功能——但并不是全部。在本文中&#xff0c;您将学习高级Java功能及其如何在Android中实现。这…