自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bug处理进行时

每天解决一点小问题,每天都在变得更好

  • 博客(78)
  • 资源 (3)
  • 收藏
  • 关注

原创 一文了解Cornerstone3D中窗宽窗位的3种设置场景及原理

在使用Cornerstone3D渲染影像时,有一个常用功能“设置窗宽窗位(windowWidth&windowLevel)”,通过精确调整窗宽窗位,医生能够更清晰地区分各种组织,如区别软组织、骨骼、脑组织等。本文将围绕窗宽窗位的基础概念、如何使用工具调整及工具调整的实现原理、js动态调整、MPR视图下多视图同步调整等展开。

2024-03-11 15:28:05 1067

原创 Mac电脑输入正确密码后提示密码错误

Mac Pro 在输入正确密码的情况下,一直提示密码错误!!!

2024-02-29 16:44:58 854

原创 【从0上手Cornerstone3D】如何使用CornerstoneTools中的工具之同步器

同步器(Synchronizers)可以使多个视图同步响应同一个工具的操作,例如我们在MPR视图下,同步操作三个视图的缩放程度、windowLevel等等

2024-02-05 22:29:52 916

原创 【从0上手Cornerstone3D】如何使用CornerstoneTools中的工具之工具介绍

ToolGroup是Cornerstone3D中的一个新概念。ToolGroup的目标是定义一种简单的方法,以每个视口方式定义工具的行为。除此之外,绑定了同一个TooGroup的Viewport可以共享工具组相同的配置、模式及组内的工具。

2024-02-04 17:13:44 1413

原创 如何在 iconfont 中使用彩色图标

如何在 iconfont 中使用彩色图标

2024-02-04 14:29:49 640

原创 【图解面试】深入解析数据类型转换

将值从一种数据类型转换到另一种数据类型通常称为数据类型转换。在面试过程中大多数都是以代码输出题出现,但是要了解到具体的转换规则,彻底搞懂底层原理,才能应对变来变去的值类型~

2024-02-01 17:34:47 1091

原创 一文(10图)了解Cornerstone3D核心概念(万字总结附导图)

一文+10图了解Cornerstone3D核心概念:简介、ImageId及ImageLoader、Volume及VolumeLoader、RenderingEngine、Viewport等核心概念

2024-01-22 14:30:12 1530

原创 【从0上手cornerstone3D】如何加载nifti格式的文件

该系列为从浅入深Cornerstone系列,包括cornerstone核心概念、基础使用、常见案例、工具使用、运行原理、源码解读等等,欢迎Fork演示Github:https://github.com/jianyaoo/vue-cornerstone-demo,一起讨论更多Cornerstone相关实践。

2024-01-17 18:18:38 696 2

原创 【从0上手cornerstone3D】核心概念解析(下)

Cornerstone3D核心概念解析下篇。该系列为从浅入深Cornerstone系列,包括cornerstone核心概念、基础使用、常见案例、工具使用、运行原理、源码解读等等。

2024-01-15 20:10:31 526 1

原创 【从0上手cornerstone3D】如何渲染一个基础的Dicom文件(含演示)

该系列为从浅入深Cornerstone系列,包括cornerstone核心概念、基础使用、常见案例、工具使用、运行原理、源码解读等等,欢迎Fork演示Github:https://github.com/jianyaoo/vue-cornerstone-demo,一起讨论更多Cornerstone相关实践。

2024-01-12 14:46:30 1483 4

原创 【图解面试】JS系列 - 如何回答数据类型相关问题(上)

图解面试,对面试题进行分解,以图例的形式展现需要回答的要点及知识点,并对知识点进行总结给出面试中如何有层次、有逻辑的回答相关问题。

2024-01-10 20:21:37 1078 1

原创 Cornerstone3D中获取Dicom文件CT值的实践方案

Cornerstone3D中如何获取Dicom文件中的CT值

2024-01-05 20:13:39 917

原创 业务项目中Echarts图表组件的封装实践方案

背景:如果我们的项目是一个可视化类/营销看板类/大屏展示类业务项目,不可避免的会使用到各种图表展示。那在一个项目中如何封装一个图表组件既能够快速复用、UI统一,又可以灵活扩充Echarts的各种复杂配置项配置就变得极为重要。

2024-01-05 18:02:32 698

原创 Echarts标记非线图(轴)上点的两种实践方案

如何在线图上标记一个非轴线上的点,两种实践方案:双数值轴线图+markPoint、SeriesLine+SeriesCustom

2024-01-03 21:51:30 1040 1

原创 不同场景下的多种文件下载方案实践

不同场景下的多种文件下载方案:a标签下载、blob下载、FileSaver第三方库下载。不同方案分别适配何种场景,如何在实际开发中实践

2023-12-22 16:08:43 966

原创 前端常见面试题

2021-09-13 22:13:47 285

原创 常见面试题 - HTTP缓存策略

一、缓存策略1 - 缓存策略的分类根据是否需要向服务器端发起请求,主要分为两大类强缓存:客户端获取一个资源后,服务器端会给这个资源一个缓存时间,在资源的有效缓存时间内,下次请求直接使用缓存,如果不在缓存时间内,则执行比较缓存策略。协商缓存:客户端使用一个资源时,先把资源的缓存数据标识和最后更新时间发送给服务器,由服务器进行校验,检验成功后,返回304状态码标识当前资源可以直接使用缓存资源。2 - 缓存开始时间缓存策略都是从第二次请求开始第一次请求资源:服务器端返回资源,并在请求头中添加使

2021-09-10 22:26:34 889

原创 面试题 - 事件循环机制

一、浏览器JS异步执行的原理一般常说js是一门单线程语言,那为什么可以异步执行且不发生阻塞呢?常说的JS是单线程语言,是因为执行JS的引擎是单线程的,而浏览器本身是多线程的浏览器主要含有:js 执行线程定时器线程http 请求线程事件触发线程GUI 线程等异步请求的真正执行者是浏览器的其他线程js 引擎只是执行了异步操作成功了之后的回调函数二、事件循环机制1 - 执行栈和任务队列(1)执行栈是什么用于按执行顺序存放同步代码按序执行,执行完毕后弹出执行栈如果在执

2021-08-05 10:55:14 4546

原创 一文了解Vue全家桶之Vue-router

一、安装方式一: 通过JavaScript 或者 CDN引入https://unpkg.com/vue-router/dist/vue-router.js方式二: 模块化安装:npm install vue-router注意:如果在模块化工程中使用vue,必须使用Vue.use()来明确的安装路由功能import Vue from 'vue'import VueRouter from 'vue-router'Vue.use(VueRouter)方式三: 基于cli方式

2021-08-03 19:26:51 629

原创 一文了解Vue全家桶之Vuex

一、vuex 状态管理模式1 - 普通的数据流管理单项数据流流向2 - vuex 状态管理模式集中式存储管理应用的所有组件的状态以相应的规则保证状态以一种可预测的方式发生变化二、为什么要使用vuex当多个组件共享一个状态时,方便状态的管理当跨层级组件之间通信时,方便数据处理三、核心概念1 - State(1)state 是什么?是项目中唯一的一个状态树包含了项目中所有组件的共享状态值(2)state有哪些特性?一个项目中只有一个store实例和 vue实例

2021-08-02 21:17:19 219

原创 一文全面了解Vue组件

重点说明:当前笔记内容侧重点为各个知识点的应用及需要注意的地方,而不是每个知识点的概念。概念相关请查看官网:https://cn.vuejs.org/v2/guide/installation.html vue入门教程。代码及xmind源文件Gitee:https://gitee.com/zhiyaoyun/vue-project代码下载地址:https://gitee.com/zhiyaoyun/vue-project.git一、计算属性和侦听器1 - 计算属性目的处理模板中需要复杂.

2021-07-29 16:28:45 414

原创 全面了解Vue基础知识(实例、指令)

一、vue 应用的组成1 - vue 实例一个vue应用由一个根实例及多个嵌套的、可选的组件树构成<div id="app"> {{message}} <todo-list/></div><script> // 组件 Vue.component('todo-list', { data() { return { message: "this is a component" }

2021-07-27 17:32:23 656

原创 面试题 - 数组API及常见排序算法

一、构造数组1 - Array创建一个数组:new Array(item1,item2…)字面量创建一个数组:let array = []2 - 转换数组Array.ofArray.fromlet arr3 = Array.of("a","b");let arr4 = Array.of(3); // 把传进来的值作为数组的第一项let arr5 = Array.from({0: 'a', 1: 'b', 2:'c', length: 3});console.log(arr3)

2021-07-22 20:50:17 398 1

原创 面试题 - 手写JSON.stringify

一、JSON.stringify方法的基本使用作用:将对象转换成JSON字符串的格式,配合JSON.parse可实现基础版的对象深拷贝语法:JSON.stringify(value[, replacer [, space]])let myObj1 = { name:'Tim', age:10, friends:[1,2,3], sex:'boy'}// 第一个参数:必须,需要序列化的对象let objToString1 = JSON.stringify(myObj1);c

2021-07-21 17:58:17 799

原创 面试题 - 七种前端实现继承的方式

一、常见的几种继承方式原型链继承构造函数继承组合继承原型式继承寄生继承寄生组合继承extends 继承二、常见继承方式的优缺点1 - 原型链继承实现:手动绑定父类对象为子类的原型链,使用new关键字实例化子类关键:子类和父类都是构造函数,不是具体的字面量表达式// 父类构造函数function Parent1(){ this.name='parent1'; this.friends = ['Tom','Joly','Tim'];}// 子类构造函数functi

2021-07-20 20:43:50 906

原创 JS核心知识点 - 异步处理

一、异步:现在与将来1 - 异步机制什么是异步机制a. 对于一段js代码,主要分为两块,一块是现在执行,一块是将来执行。b. 一旦把一部分代码包装成一个函数,并指定它在响应某个事件时执行,那就形成了一个将来时代码块,同时也引入了异步机制。2 - 事件循环机制什么是事件循环机制a. js 引擎本身做的事情是:在需要的时候,在给定的任意时间段执行单个代码块。即 js 引擎本身并没有时间概念,只是按需执行js的代码片段。b. js 引擎运行的宿主环境都提供了一种机制:能够处理程序中多个块的

2021-07-19 21:28:11 296

原创 面试题 - 原型及原型链

一. [[protoType]]1 - [[prototype]]属性什么是[[Prototype]]属性JavaScript中每一个对象都有一个内置的[[prototype]]属性,这个属性指向对其他对象的引用。大多数情况下这个对象的值都不为空。原型链的尽头 - Object.prototype当执行 [[Get]] 操作时,如果当前对象没有查找的属性,则会继续向上查找原型链,直到查找到原型链的尽头 Object.prototype,如果依旧没有则返回 undefined 。所以自定义的

2021-07-12 20:42:30 702 1

原创 面试题 - 数据类型之对象

一、对象1. 语法对象可以通过两种方式进行定义:字面量的方式let myObj = { name:'joly'}构造形式let myObj = new Object();myObj.name = 'joly'两者声明出来的对象是一致的,唯一的区别是:字面量可以一次性添加多个属性,而构造函数的形式要单独添加。2. 类型对象是JavaScript中的一种基本数据类型,在对象中又有一些子类型:ArrayFunctionDate…内置对象内置对象中 Strin

2021-07-07 09:58:17 179

原创 如何控制浏览器Url显示、监听Url变化

MDN链接:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/popstate_event。MDN链接:https://developer.mozilla.org/zh-CN/docs/Web/API/History/pushState。在点击搜索时,将搜索条件添加到浏览器的URL中,并向历史记录中新增一条数据。基本是一致的,都会在当前浏览器会话中新增一条历史记录。作用:当活动的历史记录发生变化时,将会触发。涉及知识点:浏览器事件。

2021-03-10 15:27:59 1561

原创 如何在Echarts世界地图中使用中文地名

Echarts地图中英文映射需求背景在Echarts官网下载的世界地图注册文件为英文的国家名称,为提升用户体验修改为中文的国家名称及中文的数据提示。实现思路1 - 从官网下载world.json地图注册文件2 - 将注册文件中的英文名映射为中文名3 - 将映射后的注册文件进行地图注册具体实现1 - 获取world.json文件2 - 引入映射文件(根据要显示中文/英文,映入不同的映射文件)说明:目前Echarts地图注册文件支持215个国家的显示。import {mapZHName

2021-03-10 15:17:00 3516

原创 Vue项目最佳实践

Vue项目最佳实践文章目录Vue项目最佳实践项目配置策略1 - 基本配置2 - `webpack`相关配置3 - 环境变量和模式相关配置权限管理1 - 路由级权限管理2 - 细粒度的权限管理导航菜单请求 && 数据1 - 统一配置请求库2 - 请求拦截和响应拦截3 - 数据mock4 - 请求代理参考资料项目配置策略1 - 基本配置配置上下文信息:publicPath部署应用包时的基本 URL。默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如 ht

2020-12-16 17:17:43 720

原创 【进阶篇】前端学习路线

一、基础知识CSS: 目标:常见页面布局(flex等)、CSS3 新特性、 参考书籍: CSS 世界 精通 CSS JS 目标: JS的原始类型 JS中的引用类型 迭代器和生成器 面向对象编程 和 函数式编程 代理 和 反射 ( Proxy 和 Reflect ) 函数表达式:闭包、this指针、模块模式、箭头函数等 => 函数式编程 异步编程 BOM 和 DOM Canvas 了解常用事件 了解常用A.

2020-09-28 19:28:10 1089

原创 面试题 - 六种前端异步处理方案汇总

前端异步处理解决方案汇总文章目录前端异步处理解决方案汇总背景传统解决方案1 - 回调函数2 - 事件触发ES6+ 解决方案1 - Promise2 - gengerator 函数generator-thunkgenerator-promise3 - async 和 await相关演示代码下载链接参考链接背景1. 单线程机制js是一门单线程语言,即一次只能完成一个任务。每个任务都必须按顺序执行,并且一个任务执行结束后,才可以继续执行下一个任务。TaskA --> TaskB -->

2020-08-12 14:41:35 1483

原创 如何在项目中使用百度地图进行可视化展示

百度地图文章目录百度地图00 - 基本使用使用入门添加辅助功能1 - 使用控件2 - 覆盖物简介3 - 使用标注点 - Marker4 - 使用信息窗口5 - 使用叠加图层事件处理01 - 常用功能矩阵02 - 如何查看百度地图的API03 - 文档演示代码下载04 - 百度地图开发者平台00 - 基本使用使用入门第一步:注册百度账号,申请ak秘钥注册百度账号地址:https://www.baidu.com/登录百度地图开放平台,打开控制台 - 应用管理 - 创建应用,创建成功后将获取到对应的

2020-07-08 19:40:58 941

原创 vue中基于node-scp2的自动化部署方案

基于node-scp2的自动化部署方案背景基于node-scp2的自动化部署方式基于node-scp2方式的自动化部署,只需要在创建项目阶段配置好前三个步骤,之后每次上传文件至服务器时只需要最后一步:执行步骤三注册的命令即可。node-scp2简介什么是scp2一个基于 ssh 的纯 JavaScript 安全复制程序。优点可以在每个操作系统上执行,unix、Linux、windows等。注意在windows上执行需要依托Node环境,最低版本为 v0.8.7。自动化部署流程第一步

2020-07-03 16:28:08 1610

原创 什么是Vue中的事件总线机制(EventBus)

Vue事件总线机制 - EventBus事件总线产生的背景在vue中最核心的部分就是组件,组件间的通信就是重中之重。通信分为父子组件通信、兄弟组件通信、不相干的组件通信等等多种方式。父级向子级通过props传递数据,子级通过 $emit 向父组件通知事件。但是当两个毫不相关的组件互相通信时应该通过什么来实现呢?EventBus的简介EventBus 又称时间总线 ,理解上来讲 EventBus 机制是通知的概念,EventBus作为所有组件共享的事件中心,既可以发送事件也可以接受事件,所有组件都可以

2020-06-06 14:41:24 2595

原创 全面了解Vue内置指令( 从API的角度认识Vue指令)

vue指令文章目录vue指令vue 指令是什么内容输出相关指令01 - v-text02 - v-html03 - v-cloak04 - v-once05 - v-pre逻辑处理相关指令01 - v-show02 - v-if03 - v-else04 - v-else-if循环列表相关指令01 - v-for绑定01 - v-bind02 - v-on03 - v-model其他01 - v...

2020-05-05 11:48:30 228

原创 面试题 - 一文彻底了解WebSocket

一篇文章了解WebSocketWebSocket 产生背景在我们开发过程中使用最多的就是 HTTP协议,当我们想要获取某些数据时由客户端发起请求,服务端接受请求并返回相对应的数据。但是这种单项请求方式存在一定的弊端,那就是只能由客户端发起请求,服务端响应,服务端不能够直接给客户端发送数据。而在实际开发中我们往往会遇到这些情况:数据在不断的发生变化,需要实时从服务器请求数据。例如:系统的实时运...

2020-04-26 10:45:35 1509

原创 如何在Vue项目中使用百度地图(实践)

百度地图在vue框架中的使用文章目录百度地图在vue框架中的使用安装注册全局注册组件局部注册使用(以局部注册为例)注意事项自己开发中踩到的坑参考链接安装npm install vue-baidu-map --save注册全局注册在main.js中引入百度地图import BaiduMap from 'vue-baidu-map'Vue.use(BaiduMap , { a...

2020-03-11 10:42:12 6228 1

原创 如何写出更加规范的Vue代码

Vue代码风格指南整理A级:必要的使用以下代码规则会规避一些不必要的错误1、组件名为多个单词好处避免和现有的以及未来的HTML产生冲突,因为html元素名称为单元素举例// 反例1,以todo为组件名Vue.component("todo" , { ...})// 反例2,以todo为组件名export default{ name:"Todo...

2020-02-15 11:19:40 633 1

EventBus.rar

vue组件通信机制之时间总线机制,案例demovue组件通信机制之时间总线机制,案例demovue组件通信机制之时间总线机制,案例demovue组件通信机制之时间总线机制,案例demo

2020-06-06

shooping-cart.zip

官方 vuex 购物官方 vuex 购物车实例 , 对vuex教程中涉及到的知识点进行了详细的运用.车实例 , 对vuex教程中涉及到的知识点进行了详细的运用.

2020-06-05

websoket.zip

websocket 运行效果演示,包括基础版和添加心跳版本。下载后直接打开html文件进行运行,通过连接不同的js文件切换不同的版本效果。

2020-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除