Vue基础入门到实战6(路由进阶+面经项目)
1 声明式导航 1.1 导航链接 1.1.1 需求 实现导航高亮效果 如果使用 a 标签进行跳转的话,需要给当前跳转的导航加样式,同时要移除上一个 a 标签的样式,太麻烦!!! 1.1.2 解决方案 vue-router 提供了一个全局组件 router-link (取代 a 标签) 能跳转,配置 to 属性指定路径(必须) 。本质还是 a 标签 ,to 无需 # 能高亮,默认就会提
Vue基础入门到实战6(路由进阶+面经项目)
1 Vuex 概述 1.1 介绍 Vuex 是一个 Vue 的 状态管理工具,状态就是数据。 大白话:Vuex 是一个插件,可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。例如:购物车数据 个人信息数 1.1.1 使用场景 某个状态 在 很多个组件 来使用 (个人信息) 多个组件 共同维护 一份数据 (购物车) 1.1.2 优势 共同维护一份数据,数据集中化管
Vue基础入门到实战5(自定义指令+插槽+路由入门)
1 自定义指令 1.1 简介 内置指令:v-html、v-if、v-bind、v-on… 这都是Vue给咱们内置的一些指令,可以直接使用 自定义指令:同时Vue也支持让开发者,自己注册一些指令。这些指令被称为 自定义指令。每个指令都有自己各自独立的功能 1.1.1 自定义指令 概念:自己定义的指令,可以 封装一些DOM操作,扩展额外的功能 1.1.2 自定义指令语法 全局注
Vue基础入门到实战4(组件组成部分+组件通信+进阶语法)
1 组件组成部分 1.1 scoped 解决样式冲突 写在组件中的样式会 全局生效 → 因此很容易造成多个组件之间的样式冲突问题。 全局样式: 默认组件中的样式会作用到全局,任何一个组件中都会受到此样式的影响 局部样式: 可以给组件加上scoped 属性,可以让样式只作用于当前组件 scoped 原理 当前组件内标签都被添加 data-v-hash值 的属性 css选择器都被
Vue基础入门到实战3(生命周期+工程化开发+组件化开发)
1 Vue生命周期 1.1 简介 思考:什么时候可以发送初始化渲染请求?(越早越好)什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期:就是一个Vue实例从创建 到 销毁 的整个过程。 生命周期四个阶段:① 创建 ② 挂载 ③ 更新 ④ 销毁 1.创建阶段:创建响应式数据; 2.挂载阶段:渲染模板; 3.更新阶段:修改数据,更新视图; 4.销毁阶段:销毁Vue实例。 1.
Vue基础入门到实战2(指令补充+计算属性+侦听器)
1 指令修饰符 1.1 什么是指令修饰符? 所谓指令修饰符就是通过"."指明一些指令 后缀。不同的后缀封装了不同的处理操作 —> 简化代码 1.2 按键修饰符 @keyup.enter —>当点击enter键的时候才触发 代码演示 123456789101112131415161718<div id="app"> &l
Vue基础入门到实战(一)
1 Vue 介绍 概念:Vue (读音 /vjuː/,类似于 view) 是一套 **构建用户界面 ** 的 渐进式 框架 Vue2官网:https:/v2.cn.vuejs.org/ 1.1 什么是构建用户界面 基于数据渲染出用户可以看到的界面 1.2 什么是渐进式 所谓渐进式就是循序渐进,不一定非得把Vue中的所有API都学完才能开发Vue,可以学一点开发一点 Vue的两种开发方式
前端开发-CSS
1 CSS基础 1.1 介绍 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。 书写位置:title 标签下方添加 style 双标签,style 标签里面书写 CSS 代码。 12345678910<title>CSS 初体验</title><style> /
前端开发-HTML基础
1 HTML 基础 1.1 标签语法 HTML 超文本标记语言——HyperText Markup Language。 超文本:链接 标记:标签,带尖括号的文本 标签结构 标签要成对出现,中间包裹内容 <>里面放英文字母(标签名) 结束标签比开始标签多 / 标签分类:双标签和单标签 123<strong>需要加粗的文字<strong><br&g
算法训练3.2.2 背包模型
前言 背包模型的核心在于:n 个物品做一些选择,使得最终 值最大/值最小/数量最多等。解题思路就是:挨个物品考虑,每个物品有两种选择:选和不选。 背包最常见的两类模型: 01背包:f(i, j) → f(i - 1, j), f(i - 1, j - v[i])。f(i, j) 只依赖于 f(i - 1, j) 和 f(i - 1, j - v[i])。因此base case是 f(0, j)
算法训练3.2.1 基础DP
斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给定 n ,请计算 F(n) 。 示例 1: 输入:n = 2 输出:1 解释:F(2) = F(1) + F(0) =
算法训练3.1 单调栈自顶向下的动态规划(记忆化搜索)第二部分
零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例 1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = 5 + 5 + 1 示例 2: 输入:c
使用 Java 实现快速排序(递归+非递归)
快速排序 (Quick Sort) 快速排序用到了分治思想,同样的还有归并排序。乍看起来快速排序和归并排序非常相似,都是将问题变小,先排序子串,最后合并。不同的是快速排序在划分子问题的时候经过多一步处理,将划分的两组数据划分为一大一小,这样在最后合并的时候就不必像归并排序那样再进行比较。但也正因为如此,划分的不定性使得快速排序的时间复杂度并不稳定。 快速排序的基本思想:通过一趟排序将待排序列分隔
算法训练-6高效算法部分 单调队列
单调队列解决的问题非常单一,用于优化:“区间最值问题”。模板如下: 123456queue;//单调队列for (int i = 0 ; i < n ; i++) { if (窗口达到上限) q.popleft(); while (queue && nums[q.back()] >= nums[i]) queue.pop(); queue.p
算法训练3.1 单调栈自顶向下的动态规划(记忆化搜索)第一部分
前言 记忆化搜索其实就是在递归的基础上记录已经算过的状态,下次如果运算过相同的状态后,直接返回已经算过的状态,避免重复运算。 这种算法在笔试过程中是非常好用的一个算法,能够解决非常多的问题,特别是一些比较复杂的动态规划,用记忆化搜索可以很快且很形象的解决问题。 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗
超卖问题(图解 + 秒懂 + 史上最全)
前言 先来就库存超卖的问题作描述:一般电子商务网站都会遇到如团购、秒杀、特价之类的活动,而这样的活动有一个共同的特点就是访问量激增、上千甚至上万人抢购一个商品。然而,作为活动商品,库存肯定是很有限的,如何控制库存不让出现超买,以防止造成不必要的损失是众多电子商务网站程序员头疼的问题,这同时也是最基本的问题。 在秒杀系统设计中,超卖是一个经典、常见的问题,任何商品都会有数量上限,如何避免成功下订单
超卖问题-多位骑手抢一个外卖订单,如何保证只有一个骑手可以接到单子?
类似的问题: 多位用户抢一个商品,如何保证只有一个用户可以抢到商品? 多位用户抢一个红包,如何保证只有一个抢到? 在多线程环境中,如果多个线程同时访问共享资源(例如商品库存、外卖订单),会发生数据竞争,可能会导致出现脏数据或者系统问题,威胁到程序的正常运行。 举个例子,假设现在有 100 个用户参与某个限时秒杀活动,每位用户限购 1 件商品,且商品的数量只有 3 个。如果不对共享资源进行互