当前位置: 首页 > news >正文

【vue】vue3学习笔记(三)

接上篇

面包屑

  • 安装path-to-regexp
  • component/breadcrumb/index
<template><el-breadcrumb class="app-breadcrumb breadcrumb-container" separator="/"><el-breadcrumb-item v-for="(item, index) in levelList" :key="item.path"><span v-if="index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span><a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a></el-breadcrumb-item></el-breadcrumb>
</template><script lang="ts">
import { defineComponent, ref, watch, onBeforeMount } from 'vue'
import {useRoute,useRouter,RouteLocationMatched,RouteLocationRaw
} from 'vue-router'
import { compile } from 'path-to-regexp'type PartialRouteLocationMatched = Partial<RouteLocationMatched>export default defineComponent({name: 'Breadcrumb',setup() {const route = useRoute() // 相当于this.$route对象const router = useRouter() // 相当于this.$router对象const levelList = ref<Array<PartialRouteLocationMatched>>([]) // 导航列表 存放matched里筛选的路由记录// 判断是不是Dashboard路由const isDashboard = (route?: PartialRouteLocationMatched) => {const name = route && route.nameif (!name) {return false}return ((name as string).trim().toLocaleLowerCase() ==='Dashboard'.toLocaleLowerCase())}// 获取面包屑导航const getBreadcrumb = () => {// 对匹配的路由进行过滤 过滤掉没有title属性的路由,没有title就无法作为面包屑导航let matched = route.matched.filter(item => item.meta && item.meta.title) as PartialRouteLocationMatched[]// 获取第一个匹配路由记录const first = matched[0]// 我们要把dashboard作为首页 始终固定在面包屑导航第一个 Dashboard/System/Menu Management// 如果第一个匹配到的路由记录不是dashboard 我们自己就把它放在记录数组的第一项if (!isDashboard(first)) {matched = ([{path: '/dashboard',meta: {title: 'Dashboard'}}] as PartialRouteLocationMatched[]).concat(matched)}levelList.value = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)}onBeforeMount(() => {getBreadcrumb()})watch(() => route.path,() => {getBreadcrumb()})// 主要是针对 动态路由 /user/:id 进行动态参数填充// path-to-regexp 文档说明 https://www.npmjs.com/package/path-to-regexpconst pathCompile = (path: string) => {// 根据路径变编译成正则函数 并接收具体参数 比如根据正则/user/:id 帮你将:id替换成具体路径const toPath = compile(path) // 比如 path /user/:idconst params = route.params // { id: 10 }return toPath(params) // toPath({ id: 10 }) => /user/10 返回填充后的路径}// 点击面包屑导航可跳转const handleLink = (route: RouteLocationMatched) => {const { path, redirect } = route// 如果是重定向路由 就走重定向路径if (redirect) {router.push(redirect as RouteLocationRaw)return}router.push(pathCompile(path))}return {levelList,handleLink}}
})
</script><style lang="scss" scoped>
.app-breadcrumb.el-breadcrumb {display: inline-block;/* float: left; */line-height: 50px;font-size: 14px;margin-left: 8px;
}.no-redirect {color: #97a8be;cursor: text;
}
</style><style lang="scss">
.breadcrumb-enter-active,
.breadcrumb-leave-active {transition: all 0.5s;
}.breadcrumb-enter,
.breadcrumb-leave-active {opacity: 0;transform: translateX(20px);
}.breadcrumb-leave-active {position: absolute;
}.breadcrumb-move {transition: all 0.5s;
}
</style>
  • hambuger就是标签左边的那个图标,点击按钮可以开启关闭左侧菜单。
  • component/hambuger/index
<template><div class="hamburger-container" style="padding: 0 15px" @click="toggleClick"><svg:class="{ 'is-active': isActive }"class="hamburger"viewBox="0 0 1024 1024"xmlns="http://www.w3.org/2000/svg"width="64"height="64"><pathd="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"/></svg></div>
</template><script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({name: 'Hambuger',props: {isActive: {type: Boolean,default: false}},emits: ['toggleClick'], // vue3 emits声明列表setup(props, { emit }) {const toggleClick = () => {emit('toggleClick')}return {toggleClick}}
})
</script><style lang="scss" scoped>
.hamburger-container {line-height: 46px;height: 100%;float: left;cursor: pointer;transition: background 0.3s;-webkit-tap-highlight-color: transparent;&:hover {background: rgba(0, 0, 0, 0.025);}
}
.hamburger {display: inline-block;vertical-align: middle;width: 20px;height: 20px;
}.hamburger.is-active {transform: rotate(180deg);
}
</style>
  • navbar则是将hambuger和面包屑包入。开合状态会存放于store中。、
<template><div class="navbar"><hambuger @toggleClick="toggleSidebar" :is-active="sidebar.opened" /><breadcrumb /></div>
</template><script lang="ts">
import { defineComponent, computed } from 'vue'
import Breadcrumb from '@/components/Breadcrumb/index.vue'
import Hambuger from '@/components/Hambuger/index.vue'
import { useStore } from '@/store/index'export default defineComponent({name: 'Navbar',components: {Breadcrumb,Hambuger},setup() {const store = useStore()const toggleSidebar = () => {store.dispatch('app/toggleSidebar')}// 从getters中获取sidebarconst sidebar = computed(() => store.getters.sidebar)return {toggleSidebar,sidebar}}
})
</script>
  • layout中导入即可:
  <div class="navbar"><navbar></navbar></div>
  • 下面制作vuex,vuex可以通过key来加密:
app.use(store, key).use(router).use(installElementPlus).use(initSvgIcon).mount('#app')
  • 在store/index中加上key,每个组件引用的是下面那个useStore而不是vuex的useStore,这样会有提示比较好。
  • 另外需要安装这个持久化插件vuex-persistedstate,设置存储位置,键名,以及白名单。
import { InjectionKey } from 'vue'
import { createStore, Store, useStore as baseUseStore } from 'vuex'
import createPersistedState from 'vuex-persistedstate'
import app, { IAppState } from '@/store/modules/app'
import getters from './getters'export interface IRootState {app: IAppState
}// 通过下面方式使用 TypeScript 定义 store 能正确地为 store 提供类型声明。
// https://next.vuex.vuejs.org/guide/typescript-support.html#simplifying-usestore-usage
// eslint-disable-next-line symbol-description
export const key: InjectionKey<Store<IRootState>> = Symbol()// vuex store持久化 默认使用localstorage持久化
const persisteAppState = createPersistedState({storage: window.sessionStorage, // 指定storage 也可自定义key: 'vuex_app', // 存储名 默认都是vuex 多个模块需要指定 否则会覆盖// paths: ['app'] // 针对app这个模块持久化// 只针对app模块下sidebar.opened状态持久化paths: ['app.sidebar.opened'] // 通过点连接符指定state路径
})export default createStore<IRootState>({plugins: [persisteAppState],getters,modules: {app}
})
// eslint-disable-next-line
export function useStore() {return baseUseStore(key)
}
  • getter中获取:
import { GetterTree } from 'vuex'
import { IRootState } from './index'const getters: GetterTree<IRootState, IRootState> = {sidebar: state => state.app.sidebar
}export default getters
  • store/module/app.ts
import { ActionTree, Module, MutationTree } from 'vuex'
import { IRootState } from '../index' // 全局状态 root state 从src/store/index.ts里定义导出export interface IAppState {sidebar: {opened: boolean // 菜单导航展开时true 收缩时false}
}const mutations: MutationTree<IAppState> = {TOGGLE_SIDEBAR(state) {state.sidebar.opened = !state.sidebar.opened}
}const actions: ActionTree<IAppState, IRootState> = {toggleSidebar({ commit }) {commit('TOGGLE_SIDEBAR')}
}const app: Module<IAppState, IRootState> = {namespaced: true,state: {sidebar: {opened: true // 菜单导航展开时true 收缩时false}},mutations,actions
}export default app
  • 这样面包屑导航就完成了,剩下的下次写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-2883.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Android面试回忆录:帮助程序员提高核心竞争力的30条建议,真香!

**新技术层出不穷&#xff0c;去年kotlin到如今Flutter&#xff0c;技术迭代&#xff0c;你是否会变得固步自封&#xff1f;**那么看本篇文章帮你解决问题&#xff0c;让你知道怎么样学习&#xff0c;学习那些技术点才能不被时代的迭代快速淘汰&#xff01; 首先&#xff0c;先…...

2021-05-30解决centos+宝塔面板,FTP传输421 Too many connections问题错误

解决centos宝塔面板&#xff0c;FTP传输421 Too many connections”问题错误 1、首先连入服务器 在/www/server/pure-ftpd/etc下&#xff0c;找到pure-ftpd.conf 2、vim pure-ftpd.conf 没有vim的&#xff0c;用其他编辑软件也可以 3、找到 #Maximum number of sim clients wit…...

RK3399 DDR频率修改

RK3399 DDR频率修改 一、DDR当前频率获取与可调节范围 1、获取当前DDR频率、可调值、容量 cat /sys/class/devfreq/dmc/cur_freq2、查看DDR频率可调节的值 cat /sys/class/devfreq/dmc/available_frequencies3、获取DDR容量 cat /proc/meminfo二、DDR测试定频 1、因为RK3…...

javascript正则表达式常用合集

javascript正则表达式常用的合集 参考网址 {n}: n 是一个正整数&#xff0c;匹配了前面一个字符刚好出现了 n 次 {n,}: n是一个正整数&#xff0c;匹配前一个字符至少出现了n次 {n,m}: n 和 m 都是整数。匹配前面的字符至少n次&#xff0c;最多m次。如果 n 或者 m 的值是0&…...

qApp加载qss技巧

使用Qt加载qss样式&#xff0c;一般操作是读取文件&#xff0c;通过setStyleSheet设置 但是qApp只需如下&#xff1a; qApp->setStyleSheet("file:///:/test.qss");//只适用于qApp...

发现一款好用到爆的数据库工具 - DataGrip(就是耗内存)

作者&#xff1a;Atzuge cnblogs.com/zuge/p/7397255.html 最近看到一款数据库客户端工具&#xff0c;DataGrip&#xff0c;是大名鼎鼎的JetBrains公司出品的&#xff0c;就是那个出品Intellij IDEA的公司。 - 就是耗内存 DataGrip是一款数据库管理客户端工具&#xff0c;方便…...

Java 类加载器(ClassLoader)的实际使用场景有哪些?

什么是classloader classloader顾名思义&#xff0c;即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存&#xff0c;并对数据进行检验、转换解析和初始化&#xff0c;最终形成可以被虚拟机直接使用的Java类型&#xff0c;这就是虚拟机的类加载机制。了解java的类加…...

Bad owner or permissions on C:\\Users\\USER/.ssh/config on Windows

Bad owner or permissions on C:\Users\USER/.ssh/config 问题描述 由于使用vscode远程连接服务器突然新增了C:\Users\USER/.ssh/config &#xff0c;再powershell/cmd下面使用openssh&#xff08;windows自带&#xff09;连接服务器会出现Bad owner or permissions on C:\\U…...

React方向的前端面试题

1、React的生命周期&#xff1f; React中只有类组件有生命周期可言。 其中包含三个状态&#xff1a; Mounting&#xff1a;此时已经插入了真实的DOM&#xff1b; Updating&#xff1a;正在被重新渲染&#xff1b; Unmounting&#xff1a;已经移出真实的DOM。 生命周期的方…...

理解“same-site“ 和 “same-origin“

Understanding "same-site" and "same-origin" 作者&#xff1a;Eiji Kitamura 译者&#xff1a;weixsun 原文&#xff1a;Understanding "same-site" and "same-origin" "same-site" and "same-origin" are …...

ERC20智能合约安全评估

ERC20智能合约评估 常见漏洞: https://github.com/slowmist/Knowledge-Base/blob/master/solidity-security-comprehensive-list-of-known-attack-vectors-and-common-anti-patterns-chinese.md ERC20标准接口 //代币名字 function name() constant returns (string name) /…...

自己动手开发了一个 SpringMVC 框架,用起来太香了

一、介绍 在日常的 web 开发中&#xff0c;熟悉 java 的同学一定知道&#xff0c;Spring MVC 可以说是目前最流行的框架&#xff0c;之所以如此的流行&#xff0c;原因很简单&#xff1a;编程简洁、上手简单&#xff01; 我记得刚开始入行的时候&#xff0c;最先接触到的是Stru…...

一个由java.util.ConcurrentModificationException引起的血案

线上跑的一个flink任务突然报了异常&#xff0c;话不多&#xff0c;先把异常发出来 最近在做一个flink项目时遇到了一个线上报错&#xff0c;话不多说&#xff0c;先上代码&#xff0c;其中用到的第三方封装的flink sdk隐去了包前缀&#xff0c;不会影响分析。 Caused by: ja…...

程序员,请你不要在坑程序员了

大家好&#xff0c;hellohello-tom又来分享实战经验了。&#x1f923; 在一个风和日丽的下午&#xff0c;tom哥正在工位上打着瞌睡&#xff0c;突然QQ群运维同学全部开发人员说线上绿线环境大面积开始瘫痪&#xff0c;zuul网关大量接口返回service unavailable&#xff0c;并且…...

Machine Learning —— Semi-supervised Learning

Machine Learning —— Semi-supervised Learning Introduction Supervised Learning&#xff1a;(xr,y^r)r1R(x^r,\hat{y}^r)^R_{r1}(xr,y^​r)r1R​ training data中&#xff0c;每一组data都有input 和对应的output Semi-supervised Learning&#xff1a;(xr,y^r)r1R(xu…...

2021中级Android开发面试解答,附赠课程+题库

Gradle是什么&#xff1f; Gradle是一种构建语言&#xff0c;目前是Android的默认构建工具&#xff0c;我们编写的编译脚本&#xff0c;其实就是玩Gradle的API&#xff0c;所以从它更底层的意义上看&#xff0c;是一个编程框架。 因为涉及的内容很多没法一两篇文章就介绍详细…...

Layui的tree使用

前言&#xff1a;文档中有详细参数说明 &#xff1a;https://www.layui.com/doc/modules/tree.html 导入js和css文件&#xff0c;假如文件路径为404&#xff0c;查看文件是否路径上的错误&#xff0c;或者是否加上项目的根路径&#xff0c;例如&#xff1a;“${pageContext.re…...

《白帽子讲web安全》第6章 HTML 5安全

HTML5&#xff1a;是W3C制定的新一代HTML语言的标准&#xff0c;定义了很多新标签、新事件。 一、HTML 5新标签 ①<video>、<audio>等标签&#xff0c;需要加入XSS filter的黑名单中。 ②iframe的新属性sandbox&#xff1a;<iframe>加载的内容会被视为一个…...

安装docker-compose

docker安装 Docker 支持 64 位版本 CentOS 7/8&#xff0c;并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i s…...

Redis数据结构——压缩列表

压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项&#xff0c;且每个列表项要么是小整数值&#xff0c;要么是长度较短的字符串&#xff0c;Redis则使用压缩列表作为列表键的底层实现。当一个哈希键只包含少量键值对&#xff0c;且每个键值对要么是小整数…...

Git一个项目中引用其他Git仓库

// git submodule add [git地址] [目录位置] $ git submodule add https://xxx/gittest.git src/gittest使用submodule后 在当前git目录下会生成一个 .gitmodules 文件 如果但当前目录已经存在了一个 .gitmodules&#xff0c;命令需要更改为 $ git submodule add -f https://…...

大厂实习之路|记录我的腾讯9面之旅

文章目录自我介绍简历投递情况腾讯面试情况腾讯某部门一面、二面&#xff08;3.22 3.24 &#xff09;微信安卓一面&#xff08;3.29&#xff09;&#xff1a;不知名安卓部门一面&#xff08;4.6&#xff09;&#xff1a;不知名安卓部门一面与二面(4.24&#xff0c;4.26)&#x…...

Django-reverse与resolve函数

Django的反向解析的reverse与resolve函数实现 - reverse  通过路由命名或可调用的视图对象来生成路由地址  from django.shortcuts import render,reverse 引入reverse - resolve  通过路由地址获取路由对象的信息  from django.urls import resolve 引入resolve  需要在…...

Mybatis源码研究之DatabaseIdProvider

借助Mybatis提供的 databaseId特性&#xff0c;我们可以实现让应用同时支持多种类型的数据库。 0. 目录这里写目录标题1. 测试用例2. 原理解析3. databaseId的其它应用4. Links1. 测试用例 相关的配置和测试用例如下 &#xff08;这里我们以源生的mybatis为例&#xff0c;与Sp…...

Spring企业级程序设计 • 【第6章 深入Spring MVC开发】

全部章节 >>>> 本章目录 6.1 模型数据解析及控制器返回值 6.1.1 ModelAndView多种用法 6.1.2 Map添加模型数据和返回String类型值 6.1.3 Model添加模型数据和返回String类型值 6.1.4 返回值为String类型的重定向和转发 6.1.5 实践练习 6.2 Spring MVC表…...

投资理财1

1. 投资术语 熔断&#xff1a;也叫自动停盘机制&#xff0c;是指当股指波幅达到规定的熔断点时&#xff0c;交易所为控制风险采取的暂停交易措施。具体说是对某一合约在达到涨跌停板之前&#xff0c;设置一个熔断价格&#xff0c;使合约买卖报价在一段时间内只能在这一价格范围…...

CocosCreator开源框架(不断更新)

关于框架 最近项目里面需要搭建一个基础框架&#xff0c;所以我就参考了github&#xff0c;gitee上面的一些大佬的开源框架&#xff0c;这里也进行一个汇总&#xff0c;方便大家参考和学习。 关于编辑器版本&#xff0c;我觉得学习的时候不管是什么版本开发的框架&#xff0c…...

你不得不知道的36条社会潜规则(摘抄)

人过三十&#xff0c;你不得不知道的36条社会潜规则。   1、去别人家里串门记得一定要带点东西&#xff0c;即使你们关系再好&#xff0c;也要拿点礼品。   2、在别人面前一定要学会适当的装穷&#xff0c;即使你再有钱&#xff0c;也不要在朋友面前显摆。   3、警惕在你…...

macOS 使用技巧

快捷键 截图 获取文件地址 command option C 常用的系统快捷键 commandM:缩小窗口&#xff1b; commandW:关闭窗口&#xff1b; control单击&#xff1a;鼠标右键&#xff1b; command&#xff0b;H&#xff1a;隐藏窗口&#xff1b; commandQ:退出应用程序&#xff1…...

可持久化线段树 主席树 详解

&#x1f60a; | Powered By HeartFireY | Persistent Segment Tree &#x1f4d5; | 需要的前导知识&#xff1a;线段树(Segment Tree)、权值线段树、可持久化数据结构理论(Persistent Data Structure Theory) 一、可持久化线段树 简介 可持久化线段树&#xff0c;顾名思义…...

黑马程序员——关于视频学习的吐槽与自己的别扭观点

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流&#xff01; ------- 好像最近总看到有人说什么视频看了跟没看一样&#xff0c;什么视频得看 1 2 3 4 5 6遍的。。。。你们都是什么心态啊。。。这玩意看多了除了能让你越看越蛋疼之外一点用都没有的好麼。。。…...

PyQt5:实现Tetris

此为python2.7下的运行代码&#xff0c;python3.x请将注释掉的super&#xff08;&#xff09;语句放出&#xff0c;并将下面的init语句注释 运行界面如图 # -*- coding: utf-8 -*-from PyQt5.QtWidgets import QMainWindow, QFrame, QDesktopWidget, QApplication from PyQt5.…...

第四章计算机软件平台试题,13秋3计算机原理试题(第四章)

第1页&#xff0c;共4页 第2页&#xff0c;共4页年级 班级 考号 姓名………答………题………不………得………超…………过………此………密………封………线………计算机原理试题(第四章 使用软件控制计算机工作)(13秋3)一、填空题(35135分)1、 ________是能够完整、准确地表达…...

搬砖日记:关于sync用不了的问题

自己封装了个输入框的组件&#xff0c;想要实现的输入框的值的修改可以实时修改到父组件的值 印象中看到过人家用.sync修饰符去实现这个功能&#xff0c;大抵是 //父组件 <searchInput :value.sync"value"></searchInput> //子组件 <input v-model&qu…...

supermap 点云_SuperMap新一代三维GIS技术体系

随着IT技术的发展与“二三维一体化GIS”应用的不断深入&#xff0c;三维GIS得到广泛应用&#xff0c;但其三维建模技术生产作业模式具有成本高、周期长的局限性。近年来倾斜摄影技术迅速兴起&#xff0c;先进的倾斜摄影采集硬件设备、全自动建模软件的逐一落地&#xff0c;倾斜…...

SuperMap 地图

SuperMap 地图 地理坐标系统&#xff1a;地理坐标系&#xff08;Geographic coordinate system&#xff0c;简称 GCS&#xff09;用来描述地球表面三维地物位置&#xff0c;地物的具体位置由它的经纬度坐标确定。一个地理坐标系统包括对经纬度坐标单位&#xff0c;本初子午线以…...

SuperMap知识总结

SuperMap知识总结 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~开发工具与关键技术&#xff1a;SuperMap知识总结作者&#xff1a;李梓良撰写时间&#xff1a;2020年4月27日~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…...

RTM CU CTP

.RTM: Released To Manufacturing,也就是新产品的正式发布版本,比如SQL 2008 RTM.其后的补丁都是基于这个之上的. .CU: Cumulative Update,也就是积累的更新,其中会包含多个hotfix,同一个SP的多个CU中,后面的CU会包含前面的CU,因此打最新的CU即可.多个CU之后&#xff0c;微软会…...

SQL Server 2012 RTM 安装手记

原文地址为&#xff1a; SQL Server 2012 RTM 安装手记2012年3月7日&#xff0c;微软终于如约发布了内部版本号为11.0.2100.60的新一代数据库平台&#xff1a;SQL Server 2012。 发行声明&#xff1a;http://social.technet.microsoft.com/wiki/contents/articles/5636.sql-se…...

激活windows 7 RTM方法

这个激活为啥我要说是“官方”的&#xff0c;(加了引号)&#xff0c;因为这个是在微软允许的范围之内的。 现在激活的方法除了购买正版系列号外&#xff0c;网络上也流传了很多方法&#xff0c;但是那些免费的方法首先侵犯了微软的使用协议。另外很多方法是采用替换法&#xff…...

PRE、RC、beta、RTM 含义扫盲

alpha版&#xff1a;内部测试版。α是希腊字母的第一个&#xff0c;表示最早的版本&#xff0c;一般用户不要下载这个版本&#xff0c;这个版本一般是作为技术预览的&#xff0c;很可能包含很多BUG&#xff0c;功能也不全&#xff0c;主要是给开发人员和测试人员测试和找BUG用的…...

RTM消息

3.1.2. Link Message Types RTM_GETLINK (user→kernel) Lookup link by 1. interface index or 2. link name (IFLA_IFNAME) and return a single RTM_NEWLINK message containing the link configuration and statistics or a netlink error message if no such link was fo...

《逻辑思维训练》读书笔记

本文评分不高&#xff0c;6点几&#xff0c;但还是有几个观点收益 1&#xff1a;如何训练技能&#xff0c; 本书建议通过证书培训的考试题&#xff0c;比如司法考试、经济学考试等&#xff0c; 确实&#xff0c;上周末看了PMP相关教材&#xff0c;太空洞了&#xff0c;试题确…...

【Flink 实战系列】Flink CDC 实时同步 Mysql 全量加增量数据到 Hudi

【Flink 实战系列】Flink CDC 实时同步 Mysql 全量加增量数据到 Hudi 前言 Flink CDC 是基于 Flink 开发的变化数据获取组件(Change data capture),简单的说就是来捕获变更的数据,Apache Hudi 是一个数据湖平台,又支持对数据做增删改查操作,所以 Flink CDC 可以很好的和…...

【Mapreduce】利用job嵌套,多重Mapreduce,求解二度人脉

与《【Mapreduce】利用单表关联在父子关系中求解爷孙关系》&#xff08;点击打开链接&#xff09;一样的键值对。 Tom Lucy Tom Jack Jone Lucy Jone Jack Lucy Mary Lucy Ben Jack Alice Jack Jesse Terry Alice Terry Jesse Philip Terry Philip Alma Mark Terry Mark Alma只…...

【算法题】MapReduce编程,寻找二度人脉

这是某资讯APP公司的面试题&#xff0c;考察MapReduce的编程思想。 给定一个人脉关系的文件&#xff0c;从中找到二度人脉。比如给定如下的人脉关系&#xff0c; A B C D E B E F C G G H I J 应输出 A F A G C H C I C J 这里假设关系是单向的&#xff0c;比如通过第一行&q…...

Hadoop MapReduce实现人员二度关系运算

1、一度人脉:双方直接是好友2、二度人脉:双方有一个以上共同的好友,这时朋友网可以计算出你们有几个共同的好友并且呈现数字给你。你们的关系是: 你->朋友->陌生人3、三度人脉:即你朋友的朋友的朋友就是这个陌生人。你们的关系是 你->朋友->朋友->陌生人4、…...

V 神呼4123吁宽大处理1234123发者 Virgil Griffith 被判入狱 63 个月阿萨德按时

奥术大师多阿萨德 阿萨德 在加密货币市场逐渐步入寒冬时&#xff0c;曾在币圈大肆流传的 Virgil Griffith 被捕事件也终于在近日迎来了最终审判。 据外媒 CoinDesk 报道&#xff0c;本周二美国纽约南区地方法官 Kevin Castel 对前以太坊开发者 Virgil Griffith 做出判决&…...

V神绞尽脑汁开发Vyper,Python、Solidity要失宠?十分钟,看完这份12岁儿童都能看懂的智能合约指南,你就明白了…...

任何在EVM运行的代码都必须是非常高效的&#xff0c;以尽可能减少执行智能合约过程中消耗的Gas。同时&#xff0c;智能合约也需要一定的安全性、透明性。Vyper是一种通用的、实验性的编程语言。Vyper的设计初衷是极大地简化将代码编译为EVM字节码这个过程&#xff0c;以便创建更…...

瓜分14500美元, 以太坊大咖教你编程, V神带队的黑客马拉松你见过吗?

出品 | 区块链大本营&#xff08;blockchain_camp&#xff09;EDCON 2019 &#xff08;全球以太坊社区发展峰会&#xff09;将于4月8日至13日在澳大利亚悉尼ICC举行。届时不仅有V神带队的全球以太坊社区将齐聚一堂&#xff0c;还有各个顶尖项目的行业大咖讨论交流各自的项目和对…...