04 2021 档案
摘要:我们通常有这样的需求:把一些固有的配置放到xxxx.properties,然后想将xxxx.properties的value映射到实体类中,以前的做法大概如下: 但到springboot这就完全不需要这样做了,只需要使用提供的注解即可完成,有两种方式可以实现: 1. @ConfigurationPr
阅读全文
摘要:在学习ssm的时候,大家应该是配置很多的applicationContext.xml...以配置文件的方式来配置组件,但在springboot这也可以这样的方式来做,但官方不提倡,官方更希望是通过注解的方式来完成。但是现在的公司由于项目遗留的问题,还是会存在使用xml配置的方式来配置组件,我们总不能
阅读全文
摘要:有时候我们会有这样的需求,某个类组件,或使用@Bean返回的组件,在某些情况下加入到容器,某些情况下就不加入容器。那有没有办法实现呢?答案是肯定有的,使用@Conditional相关的注解即可实现,@Conditional是条件装配,当满足某一条件时,容器才有可能会被加入容器,为什么说是有可能呢?因
阅读全文
摘要:一般要在容器中加入组件时,在类上加上@Component,@Controller,@Service...,再使用@ComponentScan扫描组件所在包的位置就会添加到容器里面。其实还有一种方式,不需要自己去创建类然后再加@Component,可使用@import注解,他的作用是自动在容器中创建
阅读全文
摘要:分支是干什么用的都很清楚。使用svn进行分支操作,一般会在项目仓库下创建3个文件夹(记得是一般情况下,有的公司就不那么干,比如我公司555),分别是trunk,branches,tags。 1. trunk:就是主分支了。有的公司会当做是上线分支用,就不会在这个基础上去开发;但有的公司就喜欢在这个上
阅读全文
摘要:冲突:你和你伙伴同时操作同一个文件的同一行或多行,并且内容不一致,这就属于冲突现象。 冲突的发生场景:比如你和A伙伴同时操作hello.txt,都是改了第2行数据,然后A伙伴先提交了,接着你提交就会出现失败,因为版本库版本+1了,于是你执行update到本地,此时就发生冲突了,因为更新下来的A伙伴代
阅读全文
摘要:比如现在有两个人A和B,都是拉取同一个仓库项目的代码,A进行提交,那项目版本+1,此时另一个人拉取的项目已经是过时了,此时再提交代码就会失败。 解决方案是:执行更新的操作,拉取最新的项目文件,然后再提交
阅读全文
摘要:axios还提供了拦截器的功能,他的拦截器是用拦截 请求和响应的,说简单是:请求到服务器前拦截 和 响应到客户端前拦截。 之前我们在request.js封装了一些代码,如下: import axios from 'axios' export function request(config){ //配
阅读全文
摘要:在说axios的网络封装前,先说一下之前说过的axios的全局默认配置。讲过axios的全局配置是为了避免重复去书写相同的配置,才进行统一的,但实际开发中,只有这一个全局配置是往往不够的,比如说你定义一个baseUrl="http://192.168.1.2",但是某些vue文件并不想去访问这个地址
阅读全文
摘要:使用axios发送请求,除了url,method等配置选项,也还有其他的,如下: 在使用axios发送很多请求时会发现很多配置选项老是重复,需要进行统一的全局配置,方便复用,如下:
阅读全文
摘要:axios发送并发请求,也就是同时发送多个请求,当多个请求响应完毕,再统一拿到全部的数据进行处理。axios提供了此API让我们做到。 axios.all([axios({ url: 'http://httpbin.org/', method: 'get' }),axios({ url: 'http
阅读全文
摘要:axios的基本使用步骤如下: 1. 安装axios。 npm install axios --save 2. 导入axios 3. 使用:axios返回的是promise,因此请求成功会调用then axios({ url: 'http://httpbin.org/', method: 'get'
阅读全文
摘要:我们知道在store下有index.js,记录着state,getters,mutations...随着内容越来越多,index.js会显得越来越臃肿,于是我们需要进行内容的抽取,抽取的结构如下: 视频地址:https://www.bilibili.com/video/BV15741177Eh?p=
阅读全文
摘要:由于store对象通常只有一个,当数据很多都需要放到store对象,会显得store特别臃肿,因此引入了modules属性帮助我们将store对象进行模块划分 当我们在modules中的定义module的时候,最终是会被加入到根的state里面的,即模块会被作为根state的一个变量,在取modul
阅读全文
摘要:之前也讲过了,actions中是用来操作异步代码的,由于在mutations写异步操作会导致devtools工具记录不到state的变化,因此才有actions的存在,下面是基本的使用,如下: 点击按钮,发布到actions: <template> <div> <button @click="toA
阅读全文
摘要:之前mutation的提交和定义都会涉及到事件类型这个东西,往往在commit的时候要指定事件类型,在mutations中定义的时候也要事件类型,是非常有可能在手写的时候会出现两个事件类型不一致的情况,因此官方建议把事件类型抽取到一个文件中,用的时候用统一的一个就行。 比如在src下创建一个muta
阅读全文
摘要:vuex的store对象的state是响应式,凡是预先在state中定义的状态,都会被加入到响应式系统中,当状态发生了变化,所有引用状态的vue文件的template都会随之发生变化,做到响应式的功能。刚才也说了,提前定义好的会被加入到响应式系统中,那后面追加的属性或对象能不能加入到响应式系统中呢?
阅读全文
摘要:上一篇说了提到mutation时如何传参,写法如下: const five = 5 this.$store.commit('increfive',five) 但这种写法是普通的写法,还有一种比较特殊的写法,如下: const ten = 10 this.$store.commit({ type: '
阅读全文
摘要:在之前也演示过了mutation的基本使用,里面是定义一系列的函数,但函数的组成部分是有讲究的,如下: 因此,在commit提交的时候,参数1是事件类型。那如何给mutation的方法传入参数呢?也挺简单的,如下: 传入字符串或常量时: <template> <div> <button @click
阅读全文
摘要:store对象中getters就类似于计算属性,若想获取state的变量,直接获取即可,但很多时候获取的state变量需要经过一系列的加工或计算才是我们想要的,因此才有了getters,下面演示个最基本的getters使用: <template> <div> <h2>{{$store.getters
阅读全文
摘要:之前说过,对state的修改必须经过mutations,而mutations中是用来定义方法的,在vue文件中通过提交某个方法来完成state的修改,比如说现在点击一个按钮,让counter+1,规范的做法如下: vue文件: <template> <div> <h1>我是首页页面</h1> <h2
阅读全文
摘要:? 在之前的学习中,一个页面的状态管理是有三个步骤的,如下: 现在,多界面间的状态管理会更常见,由Vuex来管理和操作。 Vuex的基本使用步骤如下: 1. 下载Vuex插件 npm install vuex --save 2. src下创建store目录(vuex的东西会放在该目录下),该目录创建
阅读全文
摘要:我们知道在父子组件是可以相互传递数据的。但往往没有任何关系的组件之间或者是高层组件和底层组件之间也需要传递数据,并且这个数据的共用度很高,会导致组件数据的调用关系特别复杂不好管理,于是希望能把这些共享数据给抽取出来放到一个对象里面,这个能不能做到呢?完全可以嘛,还记得说过所有vue组件都有继承Vue
阅读全文
摘要:在一个函数里面,需要发送多个ajax请求,并且下一个请求都需要上一个请求返回的数据,那我们可以下面的做法: new Promise((resolve, reject) => { //执行异步请求 $.get("test.cgi", { name: "John", time: "2pm" }, fun
阅读全文
摘要:上一篇讲了promise的使用,这里不加赘述。但有时候会发现then里面的代码即使抽离出来还是很多,有没有办法再进行抽离呢?promise也提供这样的方式,能让回调后的代码进行一块一块地处理,代码如下: new Promise((resolve, reject) => { //执行异步请求 $.ge
阅读全文
摘要:Promise能解决上面回调地狱引起的代码可读性特别差的问题,记住!promise并不会说有什么特别额外的功能,他就是把上面这种层层回调的代码变得结构清晰,可读性变高; 为什么promise能使用其可读性变高呢?平时进行ajax异步请求和回调函数时是耦合在一起的,因此有时候看起来特别不美观,而pro
阅读全文
摘要:data其实不必多说,data是当前组件保存数据的地方,既可以用上template,也可以在mehtods,生命周期方法等等;而props相信大家是在父组件给子组件进行传递数据时认识的 ,一般我们会给子组件定义props,那么当前组件(父组件)在使用该子组件的时候,可以把父组件的data数据设置给自
阅读全文
摘要:下面所讲是针对Vue2.x,据说keep-alive的用法在Vue3.x已经出现变化了,以及生命周期方法destroyed等周期方法也更名了,所以下面的演示是居于2.x的 跳转到父路由对应的组件时,子路由对应组件是可以不显示出来的。但跳转到子路由对应的组件,父路由对应的组件是会显示出来的,这点要记住
阅读全文
摘要:现在有个需求是,路由间进行切换时,顺便把页面的标题也修改了;比如说当前A路由,那标题是A;切换到B路由,那标题变成B,以此类推。 很多人的做法是这样的,在每个路由的created()写代码,直接document.title="A"/"B"/"C"不就可以了吗?那这样是不是太麻烦了,每个路由都要去加这
阅读全文
摘要:之前学习过动态路由的参数传递,属于URL占位符的方式,取的话是通过$route.params来取的;其实还有一种参数传递的方式,就是传统的URL后面跟着参数的形式,话不多说,还是写代码吧: <template> <div id="nav"> <router-link :to="{path: '/pr
阅读全文
摘要:路由嵌套说白点,就相当于父子路由,但一定要记得一点的是:父子路由是独立的,对应的有父子路由关系,那父子路由也会产生父子组件;父子组件也是独立的; 话不多说,还是上代码吧: const routes = [ { path: '/', name: 'portal', redirect: '/home'
阅读全文
摘要:上一篇说过,vue-cli对打包的文件进行分类,在浏览器进行读取时减少了一定的压力 如果在大型的Vue项目中,mainfest和vendor可能并不会占太大的空间,可app是我们写业务代码的地方,很大概率会出现太大业务代码在这个文件的情况。因此能不能把这里面的某些代码给抽取出来放在其他的JS文件里呢
阅读全文
摘要:之前在进行打包src到dist里,除了img和index.html,其他比如css,js等文件都统一打包在bundle.js一个文件中,这就会导致这个文件特别大,要是浏览器去读取这个文件就会花费特别多时间。因此这种做法是不可取的,在使用vue-cli2或3,人家提供的 npm run build的打
阅读全文
摘要:目前路由的跳转是写死的,比如to="/user",那就会跳到对应的组件; 现在我们的需求是,我访问 /user/123 或 /user/456 再或 /user/dao等等,都能跳到同一页面,并且把 /user后面的参数给带过来。这个实际就像学习springmvc时的restful风格一样; 分三步
阅读全文
摘要:之前路由的跳转都是通过router-link标签来做到,但有时候也是需要通过JS代码来进行路由的跳转,也是可以实现的,如下: this.$router.push('/home') //跳转路由,可前进后退 this.$router.replace('/about') //跳转路由,不可前进后退 $r
阅读全文
摘要:刚学习<routerl-link>只接触过to属性,其他还有其他的属性,如:tag,replace,active-class 1. tag。<routerl-link>默认是被渲染成 a 标签的,但现在我不想渲染成他,想渲染成button,那就可以通过tag属性了,如下: <router-link
阅读全文
摘要:一般刚开始进入到一个网站的时候,网址一般http://域名/,后面没有跟具体的URI,可是通常我们的做法都会让去访问一个默认显示的页面;在vue路由这,同样的道理希望一进入首页给他一个默认的页面,会配置下面的东西: const routes = [ { path: '/', name: 'porta
阅读全文