摘要:
背景: 在开发过程中肯定会遇到一堆数据需要向数据库存储,但是写入前需要验证是否主键重复或联合唯一值是否存在,如果存在则,更新,否则创建的写入要求条件。如果采用sql先查询,再写入或更新的操作比较麻烦,所以我们采用mysql自带的“ on duplicate key update”方法实现。同时,由于 阅读全文
摘要:
事务简介 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。 事务用来管理 insert,update,delete 语句 一般来说,事务是必须满足4个条件(ACID)::原子性( 阅读全文
摘要:
update_or_create(defaults=None, **kwargs) defaults是用来更新的, kwargs是用来查询的 阅读全文
摘要:
一、 最主要的业务流程 1‑1购物流程 1‑2购物流程时序图 时序图详解: 1、用户开始浏览商品,需要有一个商品模块来支撑,给用户展示商品的介绍、价格等等这些信息。 2、用户把选好的商品加入购物车,这个步骤,也需要一个购物车模块来维护用户购物车中的商品。 3、 用户下单肯定需要一个订单模块来创建这个 阅读全文
摘要:
原理:表头写一个table中,表格的内容写在另一个table中,表头的宽度同步下面的表格内容的宽度 模板: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="wi 阅读全文
摘要:
// 处理日期'2020年3月19日'->'2020-3-19' function dealDateToStr(dealDate) { let split_1 = dealDate.split('年'); let year = split_1[0]; let split_2 = split_1[1] 阅读全文
摘要:
1、安装VueRouter npm install vue-router --save-dev 2、创建路由文件 在项目的`src`目录下,创建`router.js`文件,用来专门管理路由,接下来所有的路由都写在这个文件中。 1)导入vue-router import Vue from "vue"; 阅读全文
摘要:
vue-cli中组件之间的参数传递,只能是父组件向子组件传参。 1、父组件app.vue的修改 在父组件中的data中返回参数;在调用子组件时,进行数据绑定。 <template> <div id="app"> // 变红的'msgJsonAPP是用来和子组件传递的名称,需要与子组件接收名一致 <H 阅读全文
摘要:
组件文件位置 Vue-cli的组件都写在项目文件夹下的`src`文件夹下的`components`下,每个组件单独一个`.vue`文件。 基本组件文件结构 每个组件文件都包含:模版(template)、组件参数、组件样式(style) // 模版 <template> </template> // 阅读全文
摘要:
node_modules:本地安装的包的文件夹。 public:项目出口文件。 src:项目源文件: assets:资源文件,包括字体,图片等。 components:组件文件。 App.vue:入口组件。 main.js:webpack在打包的时候的入口文件。 babel.config.js:es 阅读全文
摘要:
安装node.js 从node.js的中文官网下载安装包:https://nodejs.org/zh-cn/ 然后就和安装其他程序一样进行安装即可。在安装的时候会顺带将npm这个包管理工具安装上。 安装完成后可以在终端输入node查看。 使用淘宝镜像 在终端执行: npm install -g cn 阅读全文
摘要:
导航解析流程:1、导航被触发2、在失活的组件里调用beforeRouteLeave离开守卫3、调用全局的beforeEach守卫4、在重用的组件里调用beforeRouteUpdate守卫5、在路由配置里调用beforeEnter。6、解析异步路由组件7、在被激活的组件里调用beforeRouteE 阅读全文
摘要:
组件导航守卫,就是组件中写守卫。也就是进入到这个组件之前会调用的方法。组件导航守卫大体分为:`beforeRouteEnter`、`beforeRouteUpdate`、`beforeRouteLeave`三个。 beforeRouteEnter:在进入组件之前调用的。在这里不能使用`this`,因 阅读全文
摘要:
导航守卫: 就是导航过程中各个阶段的钩子函数。分为:全局导航守卫、路由导航守卫、组件导航守卫。 全局导航守卫: 在整个网页中,只要发生了路由变化,就会触发。全局导航守卫主要包含两个函数:beforeEach、afterEach。 beforeEach: 在路由发生了改变,但是还没有成功跳转的时候会调 阅读全文
摘要:
重定向: 在定义路由的时候,可以通过添加`redirect`参数,重定向到另外一个页面。 routes: [{ path: "/", redirect: "/article" }] 别名: 在定义路由的时候,可以通过添加`alias`参数,表示该url的别名,以后也可以通过这个别名来访问到这个组件。 阅读全文
摘要:
背景: 在一个url中(一个页面中)使用多个组件,此时,需要为组件进行命名,然后通过命名区分各组件的使用位置 用法: 1、在写路由时,将原先的`component`多加一个`s`改为`components`,并且以键值对的形式进行命名。 let router = new VueRouter({ ro 阅读全文
摘要:
背景 `<router-link>`是在用户点击的情况下进行页面更新,但是有时候,我们想要在`js`中手动的修改页面的跳转,此时就需要“编程式导航”了。 方法 有三种方法: 1、`this.$router.push`:转到下一个`url`,会把新传入的url添加到浏览器的`history`中。 pu 阅读全文
摘要:
背景: 在大的路由下面有时候需要一些字路由进行切换数据,那么这时候需要使用路由嵌套。 方法: 1、直接在父路由中添加`children`字路由,格式和父路由一样。 let router = new VueRouter({ routes: [{ path: "/", component: index, 阅读全文
摘要:
404错误分为两种: 1> 页面中不存在该路由; 2> 页面中传递的参数在服务器端不存在,比如,个人中心是需要从后端获取数据的,但是你查询的用户是不存在的,此时也是404错误。 配置 在路由规则中,`*`代表的是任意字符。所以只要在路由的最后加一个`*`路由,那么以后没有匹配到的`url`都会被导入 阅读全文
摘要:
在使用路由参数时,比如从`/our/Xsan`跳转到`/our/foo`,原来的组件实例会被复用。因为这两个路由都是渲染的同一个组件,比起销毁再重建,复用则显得更加高效。不过,这也就意味着组件的生命周期钩子函数将不会被再次调用。 解决办法: 1、监听`this.route`属性。通过判断`to`和` 阅读全文