详细总结流行前端框架Vue重难点概念
1 什么是Vue?
2 Vue基本属性
3 Vue基本指令
4 组件化
4.1 创建组件
4.1.1 注册全局组件
4.1.2 注册局部组件
4.2 组件通信
5 Vue底层原理
5.1 虚拟DOM
5.2 Vue运行流程
5.3 生命周期钩子
6 Vue-cli脚手架
6.1 Webpack工具
6.1.1 基本配置
6.1.2 转换器Loader
6.1.3 插件Plugin
6.1.4 搭建本地服务器
6.2 vue-cli
6.3 Vue-router
6.4 Vuex
1 什么是Vue?
Vue是一套用于构建用户界面的渐进式框架,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
2 Vue基本属性
基本属性
含义
解释
el
DOM元素
该属性决定了该Vue实例被挂载到哪个DOM元素上,今后该DOM元素由此Vue实例直接管理
data
数据
该属性用于存储数据,既可以由开发者直接定义,也可以从网络或服务器动态加载
methods
方法
该属性用于在Vue对象中定义方法
computed
计算属性
计算属性是封装了复杂逻辑函数的属性,用于简化属性使用,增强可读性和可维护性
components
局部组件
该属性用于声明该Vue实例可以使用的局部组件
template
HTML模板
该属性决定该实例渲染的HTML结构,模板将会替换挂载的元素,挂载元素的内容都将被忽略,除非模板内容有分发插槽
props
配置
该属性用于接收来自父组件的数据
表2.1
注: 计算属性与方法的区别:前者基于缓存 的。只在相关响应式发生改变时计算属性才会重新求值,即只要响应式不变,多次访问计算属性会立即返回之前缓存的计算结果,而不必再次执行函数;而每次访问方法都会重新执行函数,从效率来看,计算属性优于方法。
3 Vue基本指令
基本指令
含义
举例
v-once
声明元素仅渲染一次,而不随着数据动态加载
{{cnt}}
v-html
声明以html格式解析渲染字符串
v-text
声明以纯文本形式解析字符串,该指令与mustache语法{{}}作用相似,但后者内部可书写简单JS表达式,应用更灵活
v-pre
跳过该元素及其子元素的Vue编译过程,跳过大量无指令节点会加快编译
{{url}}
v-bind :
声明标签中某些属性动态绑定到Vue实例的属性、对象
百度 百度
v-on @
绑定事件监听器
+
v-if v-else-if v-else
条件渲染(不符合条件的元素及其子代脱离当前HTML文档不渲染)
=90”>优
=80”>良
合格
v-show
切换元素CSS样式的display属性
v-for
遍历数组或对象
{{index}}.{{key}}:{{value}}
v-model
在表单控件(value属性)或组件上创建双向绑定
v-slot #
设置作用域插槽或具名插槽
左span
表3.1
注: 1、黄色标记的是对应指令的语法糖
2、使用v-on指令时,若监听器无参数时可省略();若监听器有参数但省略()则默认第一个形参为事件对象;若监听器有多个参数且包含事件对象,需要用$修饰符,例如:
< button @click = " test(123,$event)" > 测试 button>
test(num,e){
console.log(num,e);
}
v-on指令主要修饰符如表3.2所示,示例代码:
< button @click.stop.once = " test(123,$event)" > 测试 button>
< button @keypress.enter = " test" > 测试 button>
序号
修饰符
含义
1
stop
停止冒泡
2
prevent
阻止默认行为
3
once
只触发一次
4
keycode || keyAlias
键值或键别名,声明该事件仅由特定键触发
表3.2
3、使用v-for指令遍历数组时,数组的部分方法可以触发响应式渲染,例如push()、pop()、shift()、unshift()、splice()、sort()、reverse()
4、v-model指令主要修饰符如表3.3所示。
序号
修饰符
含义
1
lazy
v-model默认在每次input事件触发后同步输入框的值与数据。该修饰符修改触发事件为change
2
number
将输入转换为数值类型
3
trim
过滤输入字符串的首末空白字符
表3.3
4 组件化
Vue组件化提供了一种抽象,可以开发出一个个独立可复用的组件来构造复杂的整体应用,这个角度下,任何应用都会被抽象成一棵组件树。组件分为全局组件 ——可以在所有Vue实例下使用;局部组件 ——仅在声明局部组件的Vue实例下使用。一个组件可以理解为一个Vue实例,享有Vue实例的所有属性。
图4.1
4.1 创建组件
4.1.1 注册全局组件
Vue. component ( 'm_cpn' , {
template : '#cpn' ,
data ( ) {
return {
title : '我是标题' ,
text : '我是内容'
}
}
} ) ;
4.1.2 注册局部组件
components : {
m_cpn : {
template : '#cpn' ,
data ( ) {
return {
title : '我是标题' ,
text : '我是内容'
}
}
}
}
注册组件时即将组件名(上面示例中为m_cpn)与HTML模板(上面示例中为cpn)绑定。必须指出,若在组件内部注册局部组件,则此局部组件为该组件的子组件。组件必须挂载在某个Vue实例下,否则无法生效 。
4.2 组件通信
组件对象自身的固有数据存储在data属性中,与Vue对象不同在于,组件的data属性必须是函数,且该函数返回一个存储数据的对象,以使每个组件使用独立的内存空间,防止组件间数据的相互影响与耦合 。
图4.2
(1) 父组件传递数据给子组件——props属性
props属性通常是一个对象,内部包含数据对象,数据对象则支持一系列属性:① type
:接收数据类型验证。可以指定type为JS内置类型,如String、Number等,也可为自定义数据结构;② default
:未接收传参时的默认数据。当type为Array或Object类型时,default必须为函数;③ required
:为true时强制从父组件接收参数,否则报错。
父组件还可以通过两个属性访问子组件的数据:① $children
:返回所有子组件对象组成的数组,但实际应用中子组件下标值不恒定,故一般不使用该属性;② $refs
:通过$ref.x返回ref属性为x的子组件对象。
(2) 子组件传递数据给父组件——自定义事件
① 子组件中自定义事件,并在需要的时候将数据嵌入该事件发射到父组件
this . $emit ( 'add-info' , this . mBooks[ index] , index) ;
其中add-info即为子组件的自定义事件,后续参数为绑定事件的各个数据。
② 使用子组件的v-on指令,绑定自定义事件到父组件接收函数
< m_cpn : m- books= "books" : m- msg= "msg" @add- info= "addClick" > < / m_cpn>
其中addClick即为父组件接收函数,缺省()时按顺序传入add-info发射的数据,接收函数内部访问子组件数据时,亦要求按发射顺序接收。类似地,子组件可通过$parent属性访问父组件,但会增强代际耦合,不建议使用。
5 Vue底层原理
5.1 虚拟DOM
如图5.1所示,浏览器渲染引擎工作流程大致分以下步骤:
(1) 使用HTML分析器分析HTML元素,构建DOM树; (2) 使用CSS分析器分析CSS文件和元素行内样式,生成页面的样式表; (3) 将DOM树和页面样式表关联起来,构建渲染树(Render树)。由于每个DOM节点都有attach方法——接受样式信息,返回渲染对象,因此该过程又称为Attachment; (4) 浏览器根据Render树布局,为Render树上每个节点确定在显示屏上的精确坐标; (5) 调用每个DOM节点的Paint方法,绘制页面。
图5.1 浏览器渲染引擎渲染流程
用原生JS或JQ操作DOM时,浏览器会从构建DOM树开始从头到尾执行一遍渲染流程,因此操作DOM的代价仍旧是昂贵的,频繁操作还是会出现页面卡顿,影响用户体验。虚拟DOM 是渲染真实DOM之前,在内存中的JS对象,其设计是为了改善浏览器性能,因为操作JS对象比DOM节点速度快,这样可以避免无谓的重复渲染,而只将最终效果反映到网页。在网页数据更新时会先对虚拟DOM进行打补丁(patch)和重渲染,再一次性渲染到真实DOM。
(a) 插入节点
(b) 遍历插入
(c) 链表式插入
图5.2 DOM Diff算法示例
网页的变化本质上是DOM节点的变化,因此虚拟DOM的核心之一在于新旧DOM树的比较,称为DOM Diff算法 。DOM Diff算法只对DOM树的变化部分进行渲染,而对其余部分不作改动,避免遍历,从而大大提高渲染效率。如图5.2所示,DOM Diff只需变化新插入的节点,这意味着虚拟DOM树并非数组类型的顺序数据结构,而是链表型的无序数据结构,因此要高效应用虚拟DOM,需要为DOM节点指定key属性。
5.2 Vue运行流程
图5.3 Vue运行流程
可以看出在Vue架构中,最终渲染都由渲染函数完成。运行Vue框架有两种模式: (1) runtime-only
:不包含模板编译阶段; (2) runtime-compiler
:包含模板编译阶段。
new Vue ( {
el : '#app' ,
render : h => h ( App)
} )
new Vue ( {
el : '#app' ,
components : { App } ,
template : ' '
} )
runtime-only运行时不包含模板编译阶段 ,所有模板 只能在.Vue文件中借助Vue插件vue-template-compiler完成开发时编译,在项目打包时模板只已render函数形式存在于工程中,运行时不会二次编译,因此runtime-only运行更快、项目更轻,但该模式下 不能存在于非.Vue文件中,否则无法渲染。
runtime-compiler函数不限制模板存在的文件形式 ,但模板仅在运行时编译,性能低于runtime-only模式。
5.3 生命周期钩子
Vue中生命周期指一个Vue实例从创建到销毁的全部过程 ,如图5.4所示。在Vue实例的生命周期中有很多特殊的时间节点,且往往需要在这些时间节点执行一定的逻辑。封装了这些逻辑的函数称为钩子函数。钩子函数不同于回调函数,前者在事件发生的第一时间激活,后者在事件发生后激活。
常见的生命周期钩子函数如表5.1所示。
图5.4
序号
生命周期钩子
含义
1
beforeCreate()
实例初始化之后,数据观测和事件配置之前调用,此时组件的options还未初始化
2
created()
实例初始化且完成options配置后,挂载开始前调用,$el属性还未初始化
3
beforeMount()
挂载阶段开始后,渲染网页前调用,实例已完成模板编译,生成虚拟DOM树(此时$el为VDOM属性)
4
mounted()
实例挂载完成,渲染到网页后调用
5
beforeUpdate()
数据更新前调用,由于VDOM还未打补丁,此时进一步更改状态不会触发重渲染
6
updated()
数据更新后使用
7
beforeDestroy()
实例销毁前调用,此时仍可访问实例及其子代的各属性
8
destroyed()
实例销毁后调用
9
activated()
被keep-alive缓存的组件激活时调用
10
deactivated()
被keep-alive缓存的组件停用时调用
表5.1
6 Vue-cli脚手架
6.1 Webpack工具
6.1.1 基本配置
在大型前端工程中,模块化有助于降低代码耦合性,防止功能冲突。前端模块化的方案有AMD
、CMD
、CommonJS
、ES6
等,其中除ES6外的模块化开发方案都需要特定的运行环境。webpack 是一个基于Node.js的现代JS应用的静态模块打包工具,统一了各模块化方案,并且可以自动处理模块间的相互依赖。
对于新工程,webpack打包的流程如下:
npm init
npm install webpack@3.5 -- save- dev
npm install
为便于不同项目的管理,通常在每个工程下安装局部webpack包,防止版本冲突。但终端执行webpack却会使用全局webpack包,因此要在产生的package.json中配置webpack启动项:
"scripts" : {
"build" : "webpack --config ./build/prod.config.js" ,
"dev" : "webpack-dev-server --config ./build/dev.config.js --open "
} ,
此时运行npm run build即可进行生产模式下项目的打包。
6.1.2 转换器Loader
原生webpack只能处理JS文件及其依赖,但前端开发中还有CSS、Vue文件等,此时需要webpack转化器loader对其他格式的文件进行扩展 ,大部分文件的转化器可在webpack官网查询。以安装CSS、Vue扩展转换器为例:
cnpm install style- loader -- save- dev
cnpm install css- loader -- save- dev
cnpm install vue@2.6 .14 –save
cnpm install vue- loader vue- template- compiler -- save- dev
在配置文件.config.js中作如下配置:
module : {
rules : [
{
test : / \.css$ / ,
use : [ 'style-loader' , 'css-loader' ]
} ,
{
test : / \.vue$ / ,
use : [ 'vue-loader' ]
}
]
} ,
resolve : {
alias : {
'vue$' : 'vue/dist/vue.esm.js'
}
}
6.1.3 插件Plugin
webpack插件是对webpack现有功能的各种扩展,使webpack使用更方便 ,常用插件如表6.1所示。
名称
功能
HtmlWebpackPlugin
自动生成项目html文件(可指定生成模板),并将打包的js文件以
你可能感兴趣的:(前端开发,vue.js,javascript,html,前端,css)
MongoDB 客户端工具(图)
IT古董
Mongodb mongodb 工具 couchdb 集群 php windows
转自:http://hi.baidu.com/shepherdnewage/blog/item/962368f05d1f427fdcc4747c.htmlhttp://www.javabloger.com/article/mongodb-gui-win-linux-mac.htmlNoSQL的运动不止,MongoDB作为其中的主力军发展迅猛,但是图形化工具少见,我在此做了一个简单的收集,如果将来有
uniapp 微信小程序 点击按钮调用微信支付
公孙元二
微信支付 微信小程序 uniapp
实现效果:点击按钮后唤起支付方式选择:在这里我选择“微信支付”输完成密码后完成支付:需求:计算金额和创建支付订单等操作都在后端完成,前端只要将后端传过来的签名、时间戳、随机字符串等参数传给微信的api,即可在小程序唤起支付弹窗。代码://调用微信支付callPayMent(data){wx.requestPayment({//调起支付'timeStamp':data.timeStamp,'nonc
基于深度学习CNN网络 mini-xception网络实现 构建一个完整的人脸表情检测_识别分类系统,包括训练、评估、前端和服务端代码
计算机c9硕士算法工程师
卷积神经网络 深度学习 cnn 分类
人脸表情检测该项目已训练好网络模型,配置好环境即可运行使用,效果见图像,实现图像识别、摄像头识别、摄像头识别/识别分类项目-说明文档-UI界面-cnn网络项目基本介绍:【网络】深度学习CNN网络mini-xception网络【环境】python>=3.5tensorflow2opencvpyqt5【文件】训练预测全部源代码、训练好的模型、fer2013数据集、程序算法讲解文档【类别】对7种表情检测
制作图片木马
摸金校尉-马
学习
图片文件通常有称作幻数的头字节,我们来看一下几种图片文件的幻数:(注意!下面是二进制而不是文本格式的数据)通过检查头几位字节,可以分辨是否是图片文件!通过检查头几位字节,可以分辨是否是图片文件!给上传脚本加上相应的幻数头字节就可以,php引擎会将GIF89a的内容当作html文本,不解释而跳过,后面的代码仍然能够得到执行比如下面:(一般不限制图片文件格式的时候使用GIF的头比较方便,因为全都是文本
uniapp 微信小程序 金额展示套餐
竣子好逑
uniapp v2 组件 uni-app 微信小程序 小程序
html喜欢作者其他金额-->¥{{item}}js//打赏asyncfun_reward(price){//里面写逻辑},css.gradelist{padding:30rpx;background:#f5f5f5;border-radius:8rpx;box-sizing:border-box;border-radius:12rpx;margin-top:30rpx;.gradelisTitl
uniapp实现微信公众号网页(H5)授权登陆获取用户信息(前端+后端)
会说法语的猪
前端 后端 uniapp uni-app 微信 前端 后端
这篇说一下使用uniapp开发实现微信公众号网页授权、以及获取用户信息的前端、后端的实现。开始之前呢,先提一嘴uniapp开发微信小程序的微信登陆,之前也写过一篇uniapp微信小程序端实现微信登录,uniapp微信小程序登陆的,大家感兴趣可以去了解一下,因为这uniapp、一会儿小程序、一会儿公众号、一会儿app、一会儿h5的搞得有点儿乱糟糟的。简单总结一下微信小程序登陆,就是前端需要调用uni
前端工程师可以分成 4 种,你属于哪一种?
前端小林
前端
1.产品工程师产品工程师负责公司提供的产品的开发和维护。他们与产品经理和设计师密切合作,了解产品的需求并确保其符合目标受众的需求。除了编码之外,他们还会在生产环境中进行A/B测试,以提高指标并基于数据做出关于产品的决策。产品工程师通常只使用JavaScript、CSS和主要的后端语言来构建产品,而且不会偏离常规路线。根据团队规模,他们可能会与其他前端工程师一起工作,但更多情况下,他们是后端工程师团
多商户商城系统会用的技术有哪些
hunzi_1
uni-app java php
前端技术HTML/CSS:超文本标记语言(HTML)用于构建页面的结构,层叠样式表(CSS)负责页面的样式设计,它们共同决定了商城系统的页面展示效果,包括商品展示、店铺页面、用户界面等的布局和外观。JavaScript:是一种脚本语言,用于为网页添加动态效果和交互性,如实现菜单的展开与收缩、商品图片的轮播、用户操作的响应等。Vue.js/React:流行的前端框架,能够帮助开发者更高效地构建复杂的
分销商城一般会用到什么框架
hunzi_1
uni-app java php
前端框架Vue.js:特点:是一个渐进式的JavaScript框架,提供了简洁的语法和高效的数据绑定功能,使用组件化开发,使得代码的复用性和可维护性高。通过虚拟DOM实现高效的页面更新,能提升性能。适用场景:适用于构建交互性强、需要频繁更新数据的分销商城界面,如商品列表展示、购物车功能、用户订单状态的实时更新等。React.js:特点:以组件化开发为核心,拥有丰富的生态系统,包括大量的第三方组件和
搭建商城系统有可能运用到什么技术
hunzi_1
微信小程序 小程序
搭建商城系统涉及多种技术,涵盖前端、后端和数据库等多个方面:一、前端技术HTML(超文本标记语言)这是构建网页的基础语言,用于定义页面的结构。在商城系统中,通过HTML可以创建商品展示页面、购物车页面、用户注册登录页面等的基本框架。例如,使用标签来划分页面的不同区域,如商品图片展示区、商品描述区、购买按钮区域等;用标签来显示商品图片,通过设置其src属性来指定图片的来源路径。CSS(层叠样式表)用
第八讲 SPU密态引擎
huang8666
数据分析
第八讲SPU密态引擎为什么做SPU?模型对用户加密提示词对公司加密同时保护模型和提示词为什么要隐私计算?数据是敏感的数据是重要的技术路线:多方安全计算同态加密差分隐私可信硬件挑战:易用性差,性能差需要:原生AI框架支持,编译器运行时协同优化SPU简介前端:支持主流AI前端,降低学习成本,复用AI前端能力编译器:隐私保护领域IR,复用AI编译器部分优化,加密计算的优化运行时:指令并行,数据并行,多种
Java常用软件安装包分享
兜兜儿~
java 开发语言
关于Java常用软件的安装包分享,大家记得收藏!包括IDEA、IDEA、Vmware、FinalShell、CentOS、MongoDB、MySQL、Notepad++、Postman、PowerDesigner、Redis、Tomcat,以及前端相关软件
关于我的博客建站经历
忆宸_1
博客 前端
我是一名前端开发工程师,从大四的时候开始自学前端,荒废了三年时光,在大四的时候才算真正走进“编程”这扇大门。也是从那个时候开始学着搭建自己的个人博客,用来记录自己的学习笔记,但是却坚持不下来。而且发现一个奇怪的现象,对于搭建站点的过程我很感兴趣,内容输出却坚持不下来,这是我需要反思的地方。我也翻了翻过往的文章,大多都是记录单一知识点,而且内容很少,缺乏自己的思考。现在AI技术已经很成熟了,再记录这
JQuery
我是奶龙!我是奶龙!我是奶龙!
jquery 前端 javascript
jQuery获取表单元素的值(val())$(选择器).val();//获取$(选择器).val(值);//赋值获取元素下所有内容(html()).html();//获取.html(“XXXX”);//赋值获取元素下文本内容.text();//获取.text(w);文本内容);//赋值操作元素CSS属性操作单个CSS$(选择器).css(属性,值);//改变$(选择器).css(属性);//获取操
十几套JavaWeb项目,快拿去当毕业设计,简直不要太爽了
VX_BYDZ1988
django flask eclipse spring boot spring cloud servlet
1、基于web的图书管理系统设计与实现图书管理系统就是利用计算机,结合互联网对图书进行结构化、自动化管理的一种软件,来提高对图书的管理效率。本系统采用Java+Servlet+Jsp的方式实现基于web的图书管理系统。开发工具及相关技术Java技术HTML、css、javascript技术Servlet技术Eclipse开发工具MySql数据库功能概述用户端:图书查询:根据图书编号、图书名称查询图
海康威视摄像头ISUP(原EHOME协议) 摄像头实时预览springboot 版本java实现,并可以在浏览器vue前端播放(附带源码)
web14786210723
java 前端 spring boot
1.首先说了一下为什么要用ISUP协议来取流ISUP主要就是用来解决摄像头没有公网ip的情况,如果摄像头或者所在局域网的路由器有公网ip的话,其实采用rtsp直接取流是最方便也是性能最好的,但是项目的摄像头没有公网IP所以被迫使用ISUP,ISUP是海康自己的协议,海康官网是有对应的DEMO,我主要根据他们的java版本的demo进行改造海康DEMO地址,2.具体实现首先得设置摄像头编码格式H.2
【AIcoding技术必知必会】12问--前后端联调是什么?
srzxy42
AI coding技术必知必会 ai 产品经理 学习
基础说明前后端联调(Frontend-BackendIntegration)是指前端工程师和后端工程师将各自开发的功能模块进行对接和测试的过程。这个过程确保前端页面能够正确地与后端API进行数据交互,实现完整的业务功能。具体步骤准备阶段前后端团队共同制定接口文档(APIDocumentation)确定接口的请求方式(GET/POST等)定义请求参数和返回数据格式(通常是JSON)约定接口的命名规范
渗透测试工具包 | 开源安全测试工具 | 网络安全工具_网络安全渗透测试工具
程序员安安
安全 开源 测试工具 网络安全 信息安全 web安全 android
项目介绍记录渗透测试开源工具。自动化渗透测试AttackSurfaceMapper-自动化渗透测试工具,使用手册/测试流程。vajra-自动化渗透测试.Savior-渗透测试报告自动生成工具!.漏洞利用框架hackUtils-它是一个用于渗透测试和网络安全研究的黑客工具包,渗透以及web攻击脚本。msf框架:pocsscan攻击框架Pocsuite攻击框架Beebeeto攻击框架漏洞POC&EXP
SpringMVC工作流程(经典11步)
With.627
spring
11步来辣:1、用户发送请求至前端控制器DispatcherServlet。2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、DispatcherServlet调用HandlerAdapter处
深入探索 Vue.js 组件开发中的最新技术:Teleport 和 Suspense 的使用
桂月二二
vue.js 前端 javascript
Vue.js是一款广泛使用的前端框架,凭借其简洁的设计和强大的功能,已经成为了许多开发者首选的框架。随着Vue3的发布,新的特性和改进为开发者提供了更多的选择和灵活性。其中,Teleport和Suspense是Vue3引入的两项非常有趣和强大的技术,它们能够极大地提升应用的性能和用户体验。本篇博客将深入探讨Vue3中Teleport和Suspense的具体使用方法,介绍它们的应用场景,以及如何在实
0、springboot3 vue3开发平台-系统简介
不知所云,
springboot3 + vue3 开发平台 java spring boot vue redis mysql 前端框架 后端
文章目录1.技术栈1.1后端1.2前端2.开发环境和工具3.项目模块说明3.1模块间关联关系1.技术栈1.1后端JDK17SpringBoot3.Xsa-tokenMySQL8.XMyBatis-Plus3.5.XJWTRedismaven等其他工具类技术1.2前端Node.is20.XVue3vue-router4painaviteElement-plus2.开发环境和工具JDK17IDEAMy
恋活2 仿原神人物卡系列2全合集打包
phfxa
mod 游戏
内含恋活2仿原神角色卡系列2全合集打包共12张内含:炽沙话事人芭别尔+迪希雅+镀金女团-沙中净水+镀金女团-叶轮舞者+珐露珊+坎蒂丝+柯莱+可莉+丽莎-叶隐芳名+神里绫华-花时来信+瑶瑶。下载地址:https://www.changyouzuhao.cn/13661.html部分演示图:
springMVC工作流程
mmxgl
java
SpringMVC的工作原理图:SpringMVC流程1、用户发送请求至前端控制器DispatcherServlet。2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、DispatcherSer
Vue.js组件开发-实现后端返回二进制文件在浏览器自动下载
LCG元
前端 vue.js
在Vue.js组件开发中,若需实现从后端获取二进制文件并触发浏览器自动下载,可以利用axios(或其他HTTP客户端库)来向后端发送请求,随后利用Blob对象及URL.createObjectURL方法生成一个可供下载的链接,最后通过创建一个隐藏的元素或利用window.location来启动下载。步骤1.发送请求获取二进制数据:利用axios向后端API发送请求,并指定responseTyp
Vue.js组件开发-解决PDF签章预览问题
LCG元
前端 vue.js
在Vue.js组件开发中,解决PDF签章预览问题可能涉及多个方面,包括选择合适的PDF预览库、配置PDF.js(或其封装库如vue-pdf)以正确显示签章、以及处理可能的兼容性和性能问题。步骤和建议:1.选择合适的PDF预览库vue-pdf:基于PDF.js的Vue组件,提供响应式PDF查看、WebWorker优化的性能和丰富的API。但需要注意的是,vue-pdf可能默认不支持所有PDF签章
处理解决运行前端脚手架工程报错: ‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。附带 Linux
m0_74825746
前端 vue.js linux
目录一、场景介绍二、处理方式????1、?如果?package.json配置没有?vue-cli-server那么就安装它即可,注意安装完毕需重启编辑器启动项目,避免依赖添加不生效问题????2、如果package.json配置有?vue-cli-server或者安装了还是没好,可以看看node_modules工程模块是否存在,如果没有请安装。???3、如果上面两个条件都存在,却还是不行,那就是网
Spring Boot 3项目集成Swagger3教程
m0_74825746
spring boot 后端 java
SpringBoot3项目集成Swagger3教程??前言欢迎来到我的小天地,这里是我记录技术点滴、分享学习心得的地方。????技能清单编程语言:Java、C、C++、Python、Go、前端技术:Jquery、Vue.js、React、uni-app、EchartsUI设计:Element-ui、Antd、Color-ui后端技术:SpringBoot、Mybatis-plus、Swagger移
基于vue.js+element-ui组件开发的博客blog详细步骤
perfect-code-hzy
前端工程师 学习笔记 vue.js javascript
vue学习笔记一、前端项目初始化步骤1、通过vuecli3创建项目2、配置vue路由3、配置element-ui组件库4、配置axios库5、初始化git远程仓库6、将本地项目托管到GitHub或码云上二、接口API1、调试工具三、登录和退出功能完成登录组件提交到git--合并分支一、前端项目初始化步骤1、通过vuecli3创建项目通过vueui命令进行可视化创建项目选择创建的路径->自定义配置项
SpringBoot+Vue网站项目是如何实现的
森森 coding
技术 spring boot vue.js 后端 毕业设计
1.项目规划需求分析:明确项目的功能需求,比如用户注册、登录、数据展示等。确定技术栈:使用SpringBoot作为后端,Vue.js作为前端,MySQL作为数据库。2.环境准备2.1后端安装JDK:确保安装JavaDevelopmentKit(JDK)8或更高版本。安装Maven:用于管理依赖和构建项目。IDE选择:选择合适的IDE,如IntelliJIDEA或Eclipse。2.2前端安装Nod
Vue.js组件开发-如何处理跨域请求
LCG元
前端 vue.js
在Vue.js组件开发中,处理跨域请求(CORS,即跨来源资源共享)通常不是直接在Vue组件中解决的,而是需要后端服务器进行相应的配置,以允许来自不同源的请求。不过,前端开发者也需要了解一些基本的CORS概念和策略,以便与后端团队有效协作,并在必要时进行适当的配置或调试。CORS基本概念1.同源策略:默认情况下,浏览器遵循同源策略,即只允许加载、执行与当前页面来源(协议、域名、端口)相同的资源
java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
Java异常那些不得不说的事
白糖_
java exception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
JAVA Annotation之定义篇
周凡杨
java 注解 annotation 入门 注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linux capistrano
1.ssh -v
[email protected] 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
log4j的用法
Harry642
java log4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oracle jave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
 
Hessian 简单例子
antlove
java Web service hessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
数据库对象的同义词和序列
百合不是茶
sql 序列 同义词 ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
使用Powermock和mockito测试静态方法
bijian1013
持续集成 单元测试 mockito Powermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle 数据库 plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
jquery-validation备忘
白糖_
jquery css F# Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java 多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
[军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
Hadoop如何实现关联计算
datamachine
mapreduce hadoop 关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格 js去掉所有空格 js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架 UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
JQuery EasyUI 验证扩展
可怜的猫
jquery easyui 验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
Jquery性能优化
r361251
JavaScript jquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
在eclipse项目中使用maven管理依赖
tjj006
eclipse maven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l