Vue学习之组件生命周期
一、介绍 Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程,我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。
每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁。
实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载,只是一个空壳,无法访问到数据和真实的dom,一般不做操作
挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取
接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在这个函数中虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一 ...
Vue学习之基础用法和基础原理整理
# vue基础用法&基础原理整理
1. vue基础知识和原理1.1 初识Vue
想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象
demo容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法
demo容器里的代码被称为【Vue模板】
Vue实例和容器是一一对应的
真实开发中只有一个Vue实例,并且会配合着组件一起使用
是Vue的语法:插值表达式,可以读取到data中的所有属性
一旦data中的数据发生改变,那么页面中用到该数据的地方也会自动更新(Vue实现的响应式)
初始示例代码
1234567891011121314151617<!-- 准备好一个容器 --><div id="demo"> <h1>Hello,{{name.toUpperCase()}},{{address}}</h1></div><script type="text/javascript" ...
Vue学习之vuex详解
Vuex详解from https://www.cnblogs.com/jinkai123/p/15889180.html
一、Vuex概述1.1 官方解释Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。
它采用 集中式存储管理 应用的所有组件的状态,
并以相应的规则保证状态以一种可预测的方式发生变
化 -Vuex 也集成到 Vue 的官方调试工具 devtools extension,
提供了诸如零配置的 time-travel调试、状态快照导入导出等高级调试功能。
1.2 个人理解状态管理模式、集中式存储管理这些名词听起来就非常高大上,让人有点捉摸不透。
其实,可以简单的将其看成把需要多个组件共享的变量全部存储在一个对象里面。
然后,将这个对象放在顶层的Vue实例中,让其他组件可以使用。
那么,多个组件是不是就可以共享这个对象中的所有变量属性了呢?
如果是这样的话,为什么官方还要专门出一个插件Vuex呢?难道我们不能自己封装一个对象来管理吗?
当然可以,只是我们要先想想Vue.js带给我们最大的便利是什么呢?没错,就是响应式。
如果你自己封装实现一个对象能不能保证 ...
ES学习之合并对象的几种方法
对象的合并
需求:设有对象 o1 , o2, 需要得到对象 o3 类似求2个集合的并集。
使用展开运算符展开运算符(spread operator)提供了一种简洁的语法来合并对象。它使用{…}包裹需要合并的对象,并将它们的属性复制到一个新的对象中。
1234const obj1 = { a: 1, b: 2 };const obj2 = { c: 3, d: 4 };const obj3 = { ...obj1, ...obj2 };
方法1:使用JQuery的extend方法方法定义:jQuery.extend([deep], target, object1, [objectN])
用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。 如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象(递归合并)。否则的话,副本会与原对象共享结构。 未定义的属性将不会被复制,然而从对 ...
Ubuntu学习笔记之timesyncd
How To Set Up Time Synchronization on Ubuntu 20.04
Nexus学习之调整HTML视图下面排序
调整HTML视图下面排序业务需求:我们用nexus 主要存放android 编译的版本,版本子目录 安装 日期 来命名的
20230318_060159_nexus_dev_3.43.0
20230320_101553_nexus_dev_3.43.0
20230321_060159_nexus_dev_3.43.0
如上所示,在nexus中这个HTML视图页面下面排序是从上往下日期是越来越新的,这样就会有个问题,业务方每天去取最新的版本就要 把页面滚动到 最下面才行。
能不能调整这个排序规则呢??分析整个调整排序的思路第一步通过 右键 浏览器 -> 检查 来查看页面源码, 查看有什么关键,比较 特殊的标识,标签名,属性名 ,
然后用这个 关键字符串 在 整个源码中去搜索,先定位到 这个页面是在源码的哪个文件里面的。
我们这里 使用 “Parent Directory” 这个关键字符串去搜索。
在 文件 components/nexus-repository-services/src/main/resources/org ...
Nexus学习之调整browse视图下面排序
plugins/nexus-coreui-plugin/src/main/resources/static/rapture/NX/coreui/view/browse/ComponentAssetTree.js
plugins/nexus-coreui-plugin/src/main/resources/static/rapture/NX/coreui/model/ComponentAssetTree.js
plugins/nexus-coreui-plugin/src/main/resources/static/rapture/NX/coreui/controller/ComponentAssetTree.js
plugins/nexus-coreui-plugin ...
Linux学习之bash学习之bash_strict_mode
Table of Contents
set -e, -u, -x, -o pipefail
set -e
set -x
set -u
set -o pipefail
Setting IFS
Original Reference
set -e, -u, -x, -o pipefail
The set lines
These lines deliberately cause your script to fail. Wait, what? Believe me, this is a good thing.
With these settings, certain common errors will cause the script to immediately fail, explicitly and loudly. Otherwise, you can get hidden bugs that are discovered only when they blow up in production.
set -euxo pipefail is short for:
1234set ...
Golang学习之struct转json
golang 结构体 struct 转 json 字符串https://www.sohamkamani.com/golang/omitempty/
基本用法12345678910111213type Dog struct { Breed string WeightKg int}func main() { d := Dog{ Breed: "dalmation", WeightKg: 45, } b, _ := json.Marshal(d) fmt.Println(string(b))}
输出:
1{"Breed":"dalmation","WeightKg":45}
如果 去掉 结构体 中的 WeightKg 属性 又会如何呢?
12345678func main() { d := Dog{ Breed: "pug", } b, _ := json.Mars ...
Golang学习之mtail
mtail 学习mtail 介绍extract internal monitoring data from application logs for collection in a timeseries database
mtail :从应用程序日志中提取指标以导出到时间序列数据库
它是一个google开发的日志提取工具,用途就是:
实时读取应用程序的日志、
再通过自己编写的脚本进行分析、
最终生成时间序列指标
mtail使用流式读取日志,通过正则表达式匹配的方式从日志中提取metrics指标,
这种方式可以利用目标机器的算力,不过如果量太大,可能会影响目标机器上的业务程序
运行 mtail-progs string
Name of the directory containing mtail programs
通过 --progs 参数指定一个目录,这个目录里放置一堆的*.mtail文件,
-logs value
List of log files to monitor, separated by commas. This flag may be spe ...
Golang学习之类型转换
类型转换https://gfw.go101.org/article/value-conversions-assignments-and-comparisons.html
问题1, 下面的代码 logPathPatterns(patterns) 怎么理解呢12345678910111213// LogPathPatterns sets the patterns to find log paths in the Server.func LogPathPatterns(patterns ...string) Option { return logPathPatterns(patterns)}type logPathPatterns []stringfunc (opt logPathPatterns) apply(m *Server) error { m.tOpts = append(m.tOpts, tailer.LogPatterns(opt)) return nil}
开始我以为这是一个函数调用,全局去 mtail 代码里面搜索没有搜到,此时就很 ...
Golang学习之dlv断点调试
Delve 调试器Delve 调试器目前 Go 语言支持 GDB、LLDB 和 Delve 几种调试器。其中 GDB 是最早支持的调试工具,LLDB 是 macOS 系统推荐的标准调试工具。但是 GDB 和 LLDB 对 Go 语言的专有特性都缺乏很大支持,而只有 Delve 是专门为 Go 语言设计开发的调试工具。而且 Delve 本身也是采用 Go 语言开发,对 Windows 平台也提供了一样的支持。本节我们基于 Delve 简单解释如何调试 Go 汇编程序。
idea 上的 dlv 调试一般我们都用idea来开发go,这上面带的断点调试工具就是 dlv。
我这边本地 用的版本有以下几个:
idea-IU-203.7148.57
idea-IU-211.7628.21
GoLand-2021.1.3
里面默认带的 dlv 版本 都是 1.6.1 的
123Delve DebuggerVersion: 1.6.1Build: 7a3faca71f7e01a97833e11ebf0683543e8159cb
idea 上 断点调试go 的问题dlv 调试 卡死,分步往下没 ...