• 关于

    组件处理有什么用

    的搜索结果

问题

【精品问答】前端开发必会之React

问问小秘 2019-12-01 22:03:26 45 浏览量 回答数 0

问题

关于组件的使用,请求帮助。 400 请求报错 

kun坤 2020-05-29 17:17:35 0 浏览量 回答数 1

问题

Vue面试题汇总【精品问答】

问问小秘 2020-05-25 18:02:28 20475 浏览量 回答数 4

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

第一: 容错处理, 这个要做好, 极端场景要考虑到 第二: 缺省值(默认值)要有, 一般把应用较多的设为缺省值 第三: 颗粒化, 把组件拆分出来. 第四: 一切皆可配置, 如有必要, 组件里面使用中文标点符号, 还是英文的标点符号, 都要考虑到 第五: 场景化, 如一个dialog弹出, 还需要根据不同的状态封装成success, waring, 等 第六: 有详细的文档/注释和变更历史, 能查到来龙去脉, 新版本加了什么功能是因为什么 第七: 组件名称, 参数prop, emit, 名称设计要通俗易懂, 最好能做到代码即注释这种程度 第八: 可拓展性, 前期可能不需要这个功能, 但是后期可能会用上, 要预留什么, 要注意什么 第九: 规范化 第十: 分阶段: 不是什么都要一期开发完成看具体业务 问题来源于GitHub,查看更多答案,请查看https://github.com/haizlin/fe-interview/issues/426

游客7iokfgo4yexey 2020-05-23 12:54:37 0 浏览量 回答数 0

回答

1. Java事件处理三要素: 1) 事件源(Event Source):即事件发生的场所,就是指各个组件,如按钮等,点击按钮其实就是组件上发生的一个事件; 2) 事件(Event):事件封装了组件上发生的事情,比如按钮单击、按钮松开等等; 3) 事件监听器(Event Listener):负责监听事件源上发生的特定类型的事件,当事件到来时还必须负责处理相应的事件; 2. 事件处理的机制: 1) 首先事件是有不同的类别的,比如按钮单击、菜单项单击等事件就属于“动作事件”(Action Event),而关闭窗口、最小化窗口等事件就属于“窗口事件”(Window Event); 2) 不同类型的事件需要用不同类型的监听器监听; 3) 而监听器是一种类对象,这种类必须实现监听器接口(Listener),对于监听不同类型的事件AWT库准备了不同类型的监听器接口,比如要监听动作事件就必须实现ActionListener接口,监听窗口事件就必须实现WindowListener接口; !监听器中最重要的就是事件处理方法了,监听器必须在接受事件之后进行处理(响应); 4) 如何实现监听? i. 首先事件源(发生事件的组件)必须同意我身上发生的事件允许那些监听器监听; ii. 也就是说想监听它身上发生的事件的监听器必须到它这里注册,即组件必须调用方法addXxxListener将监听器注册到它的监听器列表中; iii. 当事件发生时就会将事件对象(Event)发送到所有注册过的监听器那里进行处理; 5) 事件源、事件、监听器的对应关系: i. 首先一个事件源可以产生多种类型的事件,比如窗口右上角的×按钮,当单击它时就会产生两种类型的事件,一个是按钮单击事件(属于Action Event),另一个是窗口关闭事件(属于Window Event); ii. 监听器接口是什么类型就发送什么类型的事件:如果注册的监听器实现的是ActionEvent的接口,那么上述×按钮就只发送按钮单击事件给它而不会发送窗口关闭事件,除非监听器同时实现了两种类型的接口,那么该监听器就会同时受到两种类型的事件; iii. 一个事件源可以注册多个监听器:一般符合逻辑的编程思想就是不同监听器监听、处理不同类型的事件,因此对于可以产生多种类型事件的事件源会注册多种类型的监听器,分别负责处理产生的多种事件; !!当然一个事件源也可以注册多个相同类型的监听器,即比对于同一个事件(按钮单击),事件源注册多个实现ActionListener接口的监听器,那么这些监听器都会受到该事件,可能会疑问,这不是多此一举吗?一种事件就给出一种处理不是很好吗?那是因为有些情况下可能需要一个事件触发多种动作,每个监听器负责实现一个动作; iv. 一个监听器可以监听多个事件源上的事件,即多个不同的组件用addXxxListener方法注册同一个监听器,那么当不同事件到来时监听器会调用其不同方法进行处理,或者在一个方法内部判断传进来的是什么事件,再进行特殊的处理; 3. 编写事件处理程序的基本流程: 1) 首先需要实现监听器类:自己编写一个类,至少要实现一种类型的监听器接口,并实现接口中所有的事件处理方法; 2) 创建组件,并对组件注册响应的监听器:首先需要创建监听器对象,将监听器对象作为参数传入组件的addXxxListener方法完成注册; 3) 全部工作完成,事件的处理完全自动进行; 4) 简单的示例:处理一个按钮的单击事件 [java] view plain copy public class AwtTest { Frame f = new Frame("Event Test"); TextField tf = new TextField(30); Button ok = new Button("OK"); class OkListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("OK button pushed!"); tf.setText("Hello!"); } } public void init() { f.add(tf); f.add(ok, BorderLayout.SOUTH); ok.addActionListener(new OkListener()); f.pack(); f.setVisible(true); } public static void main(String[] args) { new AwtTest().init(); } } !!完全按照讲述的顺序进行; !直接设置编辑框内文本的方法:void TextField.setText(String text); 4. 事件源-监听器多对多示例: [java] view plain copy public class AwtTest { Frame f = new Frame("Multiple Event Test"); TextArea ta = new TextArea(6, 40); Panel p = new Panel(); Button btn1 = new Button("button1"); Button btn2 = new Button("button2"); class Listener1 implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub ta.append("Listener1 be activated! Event Source:" + e.getActionCommand() + "\n"); } } class Listener2 implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub ta.append("Listener2 be activated! Event Source:" + e.getActionCommand() + "\n"); } } public void init() { f.add(ta); p.add(btn1); p.add(btn2); f.add(p, BorderLayout.SOUTH); Listener1 l1 = new Listener1(); Listener2 l2 = new Listener2(); btn1.addActionListener(l1); btn2.addActionListener(l1); btn2.addActionListener(l2); f.pack(); f.setVisible(true); } public static void main(String[] args) { new AwtTest().init(); } } !可以看到按钮2可以同时触发两个监听器,输出两条消息,而监听器1同时监听并处理了两个按钮的消息;

1668934001470375 2019-12-02 01:02:20 0 浏览量 回答数 0

问题

【一个 Vue 问题】怎么用 axios 实现同步请求呢?

DM。 2020-05-27 15:57:29 3 浏览量 回答数 1

回答

<p>先说办法,将main.js中<strong>window.Listen=vm</strong> 放到 new Vue的created方法里,改后如下:</p> let vm=new Vue({ el:'#app', router, components:{App}, template:'<App/>', created() { window.Listen=this } }) 然后说原因: 你把 window.Listen =vm 放在了 new Vue()的后面,可能你误以为会先执行 new Vue()并赋值给vm,然后接着执行window.Listen =vm,然后才去初始化页面所需要的组件,这个想法是错的! 真正的执行顺序是:new Vue()初始化的时候,会接着初始化当前访问路由所需要的所有组件,最后才会执行new Vue()后面的代码!不信你可以在关键位置加上console输出验证。 谢谢大神,问题完美解决:smile: <p>将window.Listen换成this ?</p> <div class="ref"> 引用来自“Kit_lee”的评论 将window.Listen换成this ? 回复 <a class="referer" target="_blank">@Kit_lee</a> : 谢谢大神:sparkles: 四楼说对了 你的$on是因为有$emit才能映射到$on,你刷新的时候没有触发$emit,$on也就不存在 之前按照这个思路试了一下,我在$on的外层加了延迟500ms,让emit先执行,问题可以解决,非常感谢 为什么要父组件用emit派发事件,子组件on接收事件处理?你应该在父组件中使用子组件标签时使用ref属性,子组件methods中定义setRiverId(value),然后在父组件changeRiver中使用this.$refs.子组件.setRiverId()。按照我这种方法完全没必要使用事件,直接调用子组件的函数就行了。 谢谢大神 我再研究下您这种方式

爱吃鱼的程序员 2020-06-05 14:44:09 0 浏览量 回答数 0

问题

阿里云主机如何判断“ImageMagick”组件已经安装成功?

shenliyu 2019-12-01 20:59:14 6583 浏览量 回答数 2

回答

我也在开发中遇到这个问题,下面是我的想法,仅供参考首先,我觉得规划css的有个影响因素,就是网站的设计思路,如果网站是有一个整个的设计风格的话,规划的时候可以将模块的粒度适度放大。结构拆分基础框架:包含重置样式、栅格、css3动画模块,还是可以加上矢量图标库(iconfont)、辅助类通用样式库: 基本的复用模块,如button、form、table等,这个设计的时候要注意复用性和维护性业务样式:包含网站各页面之间的网站特有的样式,如导航、列表页、评论等解决方案: 可以归纳一下常用的css问题,如兼容多浏览器的高度不固定的垂直水平居中、png透明图片支持等。。代码规范命名空间+模块化+语义命名,可以参考Amaze UI HTML/CSS 规范兼容性列表:这个视业务需求而定了,如果逼格高一点,如ie8+基本和hack说再见了javascript组件:复杂的交互组件都是和javascript配合,建议公司内部有统一的规范,如果没有,可以参考业内的bootstrap、aralejs都可以开发工具现在通过预处理器开发样式很常见了吧,如果是node,就用stylus或者less,像est的样式工具库应该可以帮你提高效率哈文档文档不多说了,对于团队的维护性不言而喻,推荐一个专门用于css自动化文档工具 -- Hologram,不过依赖于ruby业界参考Semantic UI顾名思义,语义化的css库,组件的划分我觉得可以参考一下哈Amaze UI中国首个开源 HTML5 跨屏前端框架,采用less编写,移动优先,文档很详细,建议仔细阅读,收获不少bootstrap什么的就不用说了

a123456678 2019-12-02 02:23:15 0 浏览量 回答数 0

问题

我知道ecs是?不知道有什么用

1172489842663491 2019-12-01 20:22:34 911 浏览量 回答数 5

问题

使用消息队列的 10 个理由

小柒2012 2019-12-01 21:20:11 6703 浏览量 回答数 1

回答

大数据就是多,就是多。原来的设备存不下、算不动。 ——啪菠萝·毕加索 大数据,不是随机样本,而是所有数据;不是精确性,而是混杂性;不是因果关系,而是相关关系。—— Schönberger 顾名思义“大数据”,从字面意思来理解就是“大量的数据”。 从技术的的角度来解释,大数据就是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 IBM提出大数据具有5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。 我们所谈论的大数据实际上更多是从应用的层面,比如某公司搜集、整理了大量的用户行为信息,然后通过数据分析手段对这些信息进行分析从而得出对公司有利用价值的结果。 比如:头条的推荐机制,就是建立在对海量用户的阅读信息的搜集、分析之上。这就是大数据在现实中具体体现。 那Hadoop又是什么?它和大数据又有什么联系呢? Hadoop是一个对海量数据进行处理的分布式系统架构,可以理解为Hadoop就是一个对大量的数据进行分析的工具,和其他组件搭配使用,来完成对大量数据的收集、存储和计算。 Hadoop框架最核心的设计就是:HDFS 和 MapReduce。 HDFS为海量的数据提供了存储;MapReduce为海量的数据提供了计算。 一套完整的Hadoop大数据生态系统基本包含这些组件。 HDFS:Hadoop分布式文件系统,专门存储超大数据文件,为整个Hadoop生态圈提供了基础的存储服务。 MapReduce:分布式离线计算框架,用来处理大量的已经存储在本地的离线数据。 Storm:分布式实时计算,主要特点是实时性,用来处理实时产生的数据。 ZooKeeper:用于Hadoop的分布式协调服务。Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。 HBase:是一个建立在HDFS之上,面向列的NoSQL数据库,用于快速读/写大量数据。 Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表。 Sqoop:是一个连接工具,用于在关系数据库、数据仓库和Hadoop之间转移数据。 Pig:它是MapReduce编程的复杂性的抽象。Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。

1748847708358317 2019-12-02 03:11:07 0 浏览量 回答数 0

问题

【精品问答】大数据常见问题之flink五十问第二期

茶什i 2019-12-01 22:02:36 263 浏览量 回答数 0

回答

光电鼠标与机械式鼠标最大的不同之处在于其定位方式不同。   光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。   光电鼠标通常由以下部分组成:光学感应器、光学透镜、发光二极管、接口微处理器、轻触式按键、滚轮、连线、PS/2或USB接口、外壳等。下面分别进行介绍:   光学感应器   光学感应器是光电鼠标的核心,目前能够生产光学感应器的厂家只有安捷伦、微软和罗技三家公司。其中,安捷伦公司的光学感应器使用十分广泛,除了微软的全部和罗技的部分光电鼠标之外,其他的光电鼠标基本上都采用了安捷伦公司的光学感应器。   光电鼠标的控制芯片   控制芯片负责协调光电鼠标中各元器件的工作,并与外部电路进行沟通(桥接)及各种信号的传送和收取。我们可以将其理解成是光电鼠标中的“管家婆”。   这里有一个非常重要的概念大家应该知道,就是dpi对鼠标定位的影响。dpi是它用来衡量鼠标每移动一英寸所能检测出的点数,dpi越小,用来定位的点数就越少,定位精度就低;dpi越大,用来定位点数就多,定位精度就高。   通常情况下,传统机械式鼠标的扫描精度都在200dpi以下,而光电鼠标则能达到400甚至800dpi,这就是为什么光电鼠标在定位精度上能够轻松超过机械式鼠标的主要原因。   光学透镜组件   光学透镜组件被放在光电鼠标的底部位置,从图5中可以清楚地看到,光学透镜组件由一个棱光镜和一个圆形透镜组成。其中,棱光镜负责将发光二极管发出的光线传送至鼠标的底部,并予以照亮。   圆形透镜则相当于一台摄像机的镜头,这个镜头负责将已经被照亮的鼠标底部图像传送至光学感应器底部的小孔中。通过观看光电鼠标的背面外壳,我们可以看出圆形透镜很像一个摄像头通过试验,笔者得出结论:不管是阻断棱光镜还是圆形透镜的光路,均会立即导致光电鼠标“失明”。其结果就是光电鼠标无法进行定位,由此可见光学透镜组件的重要性。   发光二极管   光学感应器要对缺少光线的鼠标底部进行连续的“摄像”,自然少不了“摄影灯”的支援。否则,从鼠标底部摄到的图像将是一片黑暗,黑暗的图像无法进行比较,当然更无法进行光学定位了。   通常,光电鼠标采用的发光二极管(如图7)是红色的(也有部分是蓝色的),且是高亮的(为了获得足够的光照度)。发光二极管发出的红色光线,一部分通过鼠标底部的光学透镜(即其中的棱镜)来照亮鼠标底部;另一部分则直接传到了光学感应器的正面。用一句话概括来说,发光二极管的作用就是产生光电鼠标工作时所需要的光源。   轻触式按键   没有按键的鼠标是不敢想象的,因而再普通的光电鼠标上至少也会有两个轻触式按键。方正光电鼠标的PCB上共焊有三个轻触式按键(图8)。除了左键、右键之外,中键被赋给了翻页滚轮。高级的鼠标通常带有X、Y两个翻页滚轮,而大多数光电鼠标还是像这个方正光电鼠标一样,仅带了一个翻页滚轮。翻页滚轮上、下滚动时,会使正在观看的“文档”或“网页”上下滚动。而当滚轮按下时,则会使PCB上的“中键”产生作用。注意:“中键”产生的动作,可由用户根据自己的需要进行定义。   当我们卸下翻页滚轮之后,可以看到滚轮位置上,“藏”有一对光电“发射/接收”装置。“滚轮”上带有栅格,由于栅格能够间隔的“阻断”这对光电“发射/接收”装置的光路,这样便能产生翻页脉冲信号,此脉冲信号经过控制芯片传送给Windows操作系统,便可以产生翻页动作了。   除了以上这些,光电鼠标还包括些什么呢。它还包括连接线、PS/2或USB接口、外壳等。由于这几个部分与机械式鼠标没有多大分别,因此,这里就不再说明了。

一键天涯 2019-12-02 01:16:49 0 浏览量 回答数 0

回答

光电鼠标的工作原理光电鼠标与机械式鼠标最大的不同之处在于其定位方式不同。光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。光电鼠标通常由以下部分组成:光学感应器、光学透镜、发光二极管、接口微处理器、轻触式按键、滚轮、连线、PS/2或USB接口、外壳等。下面分别进行介绍:光学感应器光学感应器是光电鼠标的核心,目前能够生产光学感应器的厂家只有安捷伦、微软和罗技三家公司。其中,安捷伦公司的光学感应器使用十分广泛,除了微软的全部和罗技的部分光电鼠标之外,其他的光电鼠标基本上都采用了安捷伦公司的光学感应器。光电鼠标的控制芯片控制芯片负责协调光电鼠标中各元器件的工作,并与外部电路进行沟通(桥接)及各种信号的传送和收取。我们可以将其理解成是光电鼠标中的“管家婆”。这里有一个非常重要的概念大家应该知道,就是dpi对鼠标定位的影响。dpi是它用来衡量鼠标每移动一英寸所能检测出的点数,dpi越小,用来定位的点数就越少,定位精度就低;dpi越大,用来定位点数就多,定位精度就高。通常情况下,传统机械式鼠标的扫描精度都在200dpi以下,而光电鼠标则能达到400甚至800dpi,这就是为什么光电鼠标在定位精度上能够轻松超过机械式鼠标的主要原因。光学透镜组件光学透镜组件被放在光电鼠标的底部位置,从图5中可以清楚地看到,光学透镜组件由一个棱光镜和一个圆形透镜组成。其中,棱光镜负责将发光二极管发出的光线传送至鼠标的底部,并予以照亮。圆形透镜则相当于一台摄像机的镜头,这个镜头负责将已经被照亮的鼠标底部图像传送至光学感应器底部的小孔中。通过观看光电鼠标的背面外壳,我们可以看出圆形透镜很像一个摄像头通过试验,笔者得出结论:不管是阻断棱光镜还是圆形透镜的光路,均会立即导致光电鼠标“失明”。其结果就是光电鼠标无法进行定位,由此可见光学透镜组件的重要性。发光二极管光学感应器要对缺少光线的鼠标底部进行连续的“摄像”,自然少不了“摄影灯”的支援。否则,从鼠标底部摄到的图像将是一片黑暗,黑暗的图像无法进行比较,当然更无法进行光学定位了。通常,光电鼠标采用的发光二极管(如图7)是红色的(也有部分是蓝色的),且是高亮的(为了获得足够的光照度)。发光二极管发出的红色光线,一部分通过鼠标底部的光学透镜(即其中的棱镜)来照亮鼠标底部;另一部分则直接传到了光学感应器的正面。用一句话概括来说,发光二极管的作用就是产生光电鼠标工作时所需要的光源。轻触式按键没有按键的鼠标是不敢想象的,因而再普通的光电鼠标上至少也会有两个轻触式按键。方正光电鼠标的PCB上共焊有三个轻触式按键(图8)。除了左键、右键之外,中键被赋给了翻页滚轮。高级的鼠标通常带有X、Y两个翻页滚轮,而大多数光电鼠标还是像这个方正光电鼠标一样,仅带了一个翻页滚轮。翻页滚轮上、下滚动时,会使正在观看的“文档”或“网页”上下滚动。而当滚轮按下时,则会使PCB上的“中键”产生作用。注意:“中键”产生的动作,可由用户根据自己的需要进行定义。当我们卸下翻页滚轮之后,可以看到滚轮位置上,“藏”有一对光电“发射/接收”装置。“滚轮”上带有栅格,由于栅格能够间隔的“阻断”这对光电“发射/接收”装置的光路,这样便能产生翻页脉冲信号,此脉冲信号经过控制芯片传送给Windows操作系统,便可以产生翻页动作了。除了以上这些,光电鼠标还包括些什么呢。它还包括连接线、PS/2或USB接口、外壳等。由于这几个部分与机械式鼠标没有多大分别,因此,这里就不再说明了。

小哇 2019-12-02 01:16:45 0 浏览量 回答数 0

回答

光电鼠标的工作原理 光电鼠标与机械式鼠标最大的不同之处在于其定位方式不同。 光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。 光电鼠标通常由以下部分组成:光学感应器、光学透镜、发光二极管、接口微处理器、轻触式按键、滚轮、连线、PS/2或USB接口、外壳等。下面分别进行介绍: 光学感应器 光学感应器是光电鼠标的核心,目前能够生产光学感应器的厂家只有安捷伦、微软和罗技三家公司。其中,安捷伦公司的光学感应器使用十分广泛,除了微软的全部和罗技的部分光电鼠标之外,其他的光电鼠标基本上都采用了安捷伦公司的光学感应器。 光电鼠标的控制芯片 控制芯片负责协调光电鼠标中各元器件的工作,并与外部电路进行沟通(桥接)及各种信号的传送和收取。我们可以将其理解成是光电鼠标中的“管家婆”。 这里有一个非常重要的概念大家应该知道,就是dpi对鼠标定位的影响。dpi是它用来衡量鼠标每移动一英寸所能检测出的点数,dpi越小,用来定位的点数就越少,定位精度就低;dpi越大,用来定位点数就多,定位精度就高。 通常情况下,传统机械式鼠标的扫描精度都在200dpi以下,而光电鼠标则能达到400甚至800dpi,这就是为什么光电鼠标在定位精度上能够轻松超过机械式鼠标的主要原因。 光学透镜组件 光学透镜组件被放在光电鼠标的底部位置,从图5中可以清楚地看到,光学透镜组件由一个棱光镜和一个圆形透镜组成。其中,棱光镜负责将发光二极管发出的光线传送至鼠标的底部,并予以照亮。 圆形透镜则相当于一台摄像机的镜头,这个镜头负责将已经被照亮的鼠标底部图像传送至光学感应器底部的小孔中。通过观看光电鼠标的背面外壳,我们可以看出圆形透镜很像一个摄像头通过试验,笔者得出结论:不管是阻断棱光镜还是圆形透镜的光路,均会立即导致光电鼠标“失明”。其结果就是光电鼠标无法进行定位,由此可见光学透镜组件的重要性。 发光二极管 光学感应器要对缺少光线的鼠标底部进行连续的“摄像”,自然少不了“摄影灯”的支援。否则,从鼠标底部摄到的图像将是一片黑暗,黑暗的图像无法进行比较,当然更无法进行光学定位了。 通常,光电鼠标采用的发光二极管(如图7)是红色的(也有部分是蓝色的),且是高亮的(为了获得足够的光照度)。发光二极管发出的红色光线,一部分通过鼠标底部的光学透镜(即其中的棱镜)来照亮鼠标底部;另一部分则直接传到了光学感应器的正面。用一句话概括来说,发光二极管的作用就是产生光电鼠标工作时所需要的光源。 轻触式按键 没有按键的鼠标是不敢想象的,因而再普通的光电鼠标上至少也会有两个轻触式按键。方正光电鼠标的PCB上共焊有三个轻触式按键(图8)。除了左键、右键之外,中键被赋给了翻页滚轮。高级的鼠标通常带有X、Y两个翻页滚轮,而大多数光电鼠标还是像这个方正光电鼠标一样,仅带了一个翻页滚轮。翻页滚轮上、下滚动时,会使正在观看的“文档”或“网页”上下滚动。而当滚轮按下时,则会使PCB上的“中键”产生作用。注意:“中键”产生的动作,可由用户根据自己的需要进行定义。 当我们卸下翻页滚轮之后,可以看到滚轮位置上,“藏”有一对光电“发射/接收”装置。“滚轮”上带有栅格,由于栅格能够间隔的“阻断”这对光电“发射/接收”装置的光路,这样便能产生翻页脉冲信号,此脉冲信号经过控制芯片传送给Windows操作系统,便可以产生翻页动作了。 除了以上这些,光电鼠标还包括些什么呢。它还包括连接线、PS/2或USB接口、外壳等。由于这几个部分与机械式鼠标没有多大分别,因此,这里就不再说明了。

马铭芳 2019-12-02 01:16:52 0 浏览量 回答数 0

回答

光电鼠标与机械式鼠标最大的不同之处在于其定位方式不同。 光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。 光电鼠标通常由以下部分组成:光学感应器、光学透镜、发光二极管、接口微处理器、轻触式按键、滚轮、连线、PS/2或USB接口、外壳等。下面分别进行介绍: 光学感应器 光学感应器是光电鼠标的核心,目前能够生产光学感应器的厂家只有安捷伦、微软和罗技三家公司。其中,安捷伦公司的光学感应器使用十分广泛,除了微软的全部和罗技的部分光电鼠标之外,其他的光电鼠标基本上都采用了安捷伦公司的光学感应器。 光电鼠标的控制芯片 控制芯片负责协调光电鼠标中各元器件的工作,并与外部电路进行沟通(桥接)及各种信号的传送和收取。我们可以将其理解成是光电鼠标中的“管家婆”。 这里有一个非常重要的概念大家应该知道,就是dpi对鼠标定位的影响。dpi是它用来衡量鼠标每移动一英寸所能检测出的点数,dpi越小,用来定位的点数就越少,定位精度就低;dpi越大,用来定位点数就多,定位精度就高。 通常情况下,传统机械式鼠标的扫描精度都在200dpi以下,而光电鼠标则能达到400甚至800dpi,这就是为什么光电鼠标在定位精度上能够轻松超过机械式鼠标的主要原因。 光学透镜组件 光学透镜组件被放在光电鼠标的底部位置,从图5中可以清楚地看到,光学透镜组件由一个棱光镜和一个圆形透镜组成。其中,棱光镜负责将发光二极管发出的光线传送至鼠标的底部,并予以照亮。 圆形透镜则相当于一台摄像机的镜头,这个镜头负责将已经被照亮的鼠标底部图像传送至光学感应器底部的小孔中。通过观看光电鼠标的背面外壳,我们可以看出圆形透镜很像一个摄像头通过试验,笔者得出结论:不管是阻断棱光镜还是圆形透镜的光路,均会立即导致光电鼠标“失明”。其结果就是光电鼠标无法进行定位,由此可见光学透镜组件的重要性。 发光二极管 光学感应器要对缺少光线的鼠标底部进行连续的“摄像”,自然少不了“摄影灯”的支援。否则,从鼠标底部摄到的图像将是一片黑暗,黑暗的图像无法进行比较,当然更无法进行光学定位了。 通常,光电鼠标采用的发光二极管(如图7)是红色的(也有部分是蓝色的),且是高亮的(为了获得足够的光照度)。发光二极管发出的红色光线,一部分通过鼠标底部的光学透镜(即其中的棱镜)来照亮鼠标底部;另一部分则直接传到了光学感应器的正面。用一句话概括来说,发光二极管的作用就是产生光电鼠标工作时所需要的光源。 轻触式按键 没有按键的鼠标是不敢想象的,因而再普通的光电鼠标上至少也会有两个轻触式按键。方正光电鼠标的PCB上共焊有三个轻触式按键(图8)。除了左键、右键之外,中键被赋给了翻页滚轮。高级的鼠标通常带有X、Y两个翻页滚轮,而大多数光电鼠标还是像这个方正光电鼠标一样,仅带了一个翻页滚轮。翻页滚轮上、下滚动时,会使正在观看的“文档”或“网页”上下滚动。而当滚轮按下时,则会使PCB上的“中键”产生作用。注意:“中键”产生的动作,可由用户根据自己的需要进行定义。 当我们卸下翻页滚轮之后,可以看到滚轮位置上,“藏”有一对光电“发射/接收”装置。“滚轮”上带有栅格,由于栅格能够间隔的“阻断”这对光电“发射/接收”装置的光路,这样便能产生翻页脉冲信号,此脉冲信号经过控制芯片传送给Windows操作系统,便可以产生翻页动作了。 除了以上这些,光电鼠标还包括些什么呢。它还包括连接线、PS/2或USB接口、外壳等。由于这几个部分与机械式鼠标没有多大分别,因此,这里就不再说明了。 参考资料:http://article.pchome.net/00/00/89/22/

玄学酱 2019-12-02 01:16:53 0 浏览量 回答数 0

回答

光电鼠标的工作原理 光电鼠标与机械式鼠标最大的不同之处在于其定位方式不同。 光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。 光电鼠标通常由以下部分组成:光学感应器、光学透镜、发光二极管、接口微处理器、轻触式按键、滚轮、连线、PS/2或USB接口、外壳等。下面分别进行介绍: 光学感应器 光学感应器是光电鼠标的核心,目前能够生产光学感应器的厂家只有安捷伦、微软和罗技三家公司。其中,安捷伦公司的光学感应器使用十分广泛,除了微软的全部和罗技的部分光电鼠标之外,其他的光电鼠标基本上都采用了安捷伦公司的光学感应器。 光电鼠标的控制芯片 控制芯片负责协调光电鼠标中各元器件的工作,并与外部电路进行沟通(桥接)及各种信号的传送和收取。我们可以将其理解成是光电鼠标中的“管家婆”。 这里有一个非常重要的概念大家应该知道,就是dpi对鼠标定位的影响。dpi是它用来衡量鼠标每移动一英寸所能检测出的点数,dpi越小,用来定位的点数就越少,定位精度就低;dpi越大,用来定位点数就多,定位精度就高。 通常情况下,传统机械式鼠标的扫描精度都在200dpi以下,而光电鼠标则能达到400甚至800dpi,这就是为什么光电鼠标在定位精度上能够轻松超过机械式鼠标的主要原因。 光学透镜组件 光学透镜组件被放在光电鼠标的底部位置,从图5中可以清楚地看到,光学透镜组件由一个棱光镜和一个圆形透镜组成。其中,棱光镜负责将发光二极管发出的光线传送至鼠标的底部,并予以照亮。 圆形透镜则相当于一台摄像机的镜头,这个镜头负责将已经被照亮的鼠标底部图像传送至光学感应器底部的小孔中。通过观看光电鼠标的背面外壳,我们可以看出圆形透镜很像一个摄像头通过试验,笔者得出结论:不管是阻断棱光镜还是圆形透镜的光路,均会立即导致光电鼠标“失明”。其结果就是光电鼠标无法进行定位,由此可见光学透镜组件的重要性。 发光二极管 光学感应器要对缺少光线的鼠标底部进行连续的“摄像”,自然少不了“摄影灯”的支援。否则,从鼠标底部摄到的图像将是一片黑暗,黑暗的图像无法进行比较,当然更无法进行光学定位了。 通常,光电鼠标采用的发光二极管(如图7)是红色的(也有部分是蓝色的),且是高亮的(为了获得足够的光照度)。发光二极管发出的红色光线,一部分通过鼠标底部的光学透镜(即其中的棱镜)来照亮鼠标底部;另一部分则直接传到了光学感应器的正面。用一句话概括来说,发光二极管的作用就是产生光电鼠标工作时所需要的光源。 轻触式按键 没有按键的鼠标是不敢想象的,因而再普通的光电鼠标上至少也会有两个轻触式按键。方正光电鼠标的PCB上共焊有三个轻触式按键(图8)。除了左键、右键之外,中键被赋给了翻页滚轮。高级的鼠标通常带有X、Y两个翻页滚轮,而大多数光电鼠标还是像这个方正光电鼠标一样,仅带了一个翻页滚轮。翻页滚轮上、下滚动时,会使正在观看的“文档”或“网页”上下滚动。而当滚轮按下时,则会使PCB上的“中键”产生作用。注意:“中键”产生的动作,可由用户根据自己的需要进行定义。 当我们卸下翻页滚轮之后,可以看到滚轮位置上,“藏”有一对光电“发射/接收”装置。“滚轮”上带有栅格,由于栅格能够间隔的“阻断”这对光电“发射/接收”装置的光路,这样便能产生翻页脉冲信号,此脉冲信号经过控制芯片传送给Windows操作系统,便可以产生翻页动作了。

美人迟暮 2019-12-02 01:16:53 0 浏览量 回答数 0

问题

【分享】WeX5的正确打开方式(2)

小太阳1号 2019-12-01 21:17:14 3935 浏览量 回答数 1

问题

【精品问答】大数据计算技术1000问

问问小秘 2019-12-01 21:57:13 6895 浏览量 回答数 2

问题

dubbo 的 spi 思想是什么?【Java问答学堂】50期

剑曼红尘 2020-07-07 09:48:29 25 浏览量 回答数 1

问题

使用阿里云服务器进行开发的小结

gameover 2019-12-01 21:06:23 15827 浏览量 回答数 23

问题

了解什么是 Redis 的雪崩、穿透和击穿?Redis 崩溃之后会怎么样?【Java问答】37期

剑曼红尘 2020-06-17 13:17:18 31 浏览量 回答数 1

回答

核心是利用ES5的Object.defineProperty,这也是Vue.js为什么不能兼容IE8及以下浏览器的原因。 Object.defineProperty方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象。 Object.defineProperty( obj, // 定义属性的对象 prop, // 要定义或修改的属性的名称 descriptor, // 将被定义或修改属性的描述符【核心】 observe的功能就是用来监测数据的变化。实现方式是给非VNode的对象类型数据添加一个Observer,如果已经添加过则直接返回,否则在满足一定条件下去实例化一个Observer对象实例。 Observer是一个类,它的作用是给对象属性添加getter和setter,用于 依赖收集 和 派发更新 依赖收集getter(重点关注以下两点) *const dep = new Dep() // 实例化一个Dep实例*在get函数中通过dep.depend做依赖收集 Dep是一个Class,它定义了一些属性和方法,它有一个静态属性target,这是一个全局唯一Watcher【同一时间内只能有一个全局的Watcher被计算】。Dep实际上就是对Watcher的一种管理,Dep脱离Watcher单独存在是没有意义的。Watcher和Dep就是典型的观察者设计模式。 Watcher是一个Class,在它的构造函数中定义了一些和Dep相关的属性: this.deps = [] this.newDeps = [] this.depIds = new Set() this.newDepIds = new Set() 收集过程:当我们实例化一个渲染watcher的时候,首先进入watcher的构造函数逻辑,然后执行他的this.get()方法,进入get函数把Dep.target赋值为当前渲染watcher并压栈(为了恢复用)。接着执行vm._render()方法,生成渲染VNode,并且在这个过程对vm上的数据访问,这个时候就触发数据对象的getter(在此期间执行Dep.target.addDep(this)方法,将watcher订阅到这个数据持有的dep的subs中,为后续数据变化时通知到哪些subs做准备)。然后递归遍历添加所有子项的getter。 Watcher在构造函数中初始化两个Dep实例数组。newDeps代表新添加的Dep实例数组,deps代表上一次添加的Dep实例数组。 依赖清空:在执行清空依赖(cleanupDeps)函数时,会首先遍历deps,移除对dep的订阅,然后把newDepsIds和depIds交换,newDeps和deps交换,并把newDepIds和newDeps清空。考虑场景,在条件渲染时,及时对不需要渲染数据的订阅移除,减少性能浪费。 考虑到Vue是数据驱动的,所以每次数据变化都会重写Render,那么vm._render()方法会再次执行,并再次触发数据 收集依赖的目的是为了当这些响应式数据发生变化,触发它们的setter的时候,能知道应该通知哪些订阅者去做相应的逻辑处理【派发更新】 派发更新setter(重点关注以下两点) *childOb = !shallow && observe(newVal) // 如果shallow为false的情况,会对新设置的值变成一个响应式对象*dep.notify() // 通知所有订阅者 派发过程:当我们组件中对响应的数据做了修改,就会触发setter的逻辑,最后调用dep.notify()方法,它是Dep的一个实例方法。具体做法是遍历依赖收集中建立的subs,也就是Watcher的实例数组【subs数组在依赖收集getter中被添加,期间通过一些逻辑处理判断保证同一数据不会被添加多次】,然后调用每一个watcher的update方法。 update函数中有个queueWatcher(this)方法引入了队列的概念,是vue在做派发更新时优化的一个点,它并不会每次数据改变都会触发watcher回调,而是把这些watcher先添加到一个队列中,然后在nextTick后执行watcher的run函数 队列排序保证: 组件的更新由父到子。父组件创建早于子组件,watcher的创建也是用户自定义watcher要早于渲染watcher执行,因为用户自定义watcher是在渲染watcher前创建的如果一个组件在父组件watcher执行期间被销毁,那么它对应的watcher执行都可以被跳过,所以父组件的watcher应该先执行。 队列遍历:排序完成后,对队列进行遍历,拿到对应的watcher,执行watcher.run()。 run函数解析:先通过this.get()得到它当前的值,然后做判断,如果满足新旧值不等、新值是对象类型、deep模式任何一个条件,则执行watcher的回调,注意回调函数执行的时候会把第一个参数和第二个参数传入新值value和旧值oldValue,这就是当我们自己添加watcher时候可以在参数中取到新旧值的来源。对应渲染watcher而言,在执行this.get()方法求值的时候,会执行getter方法。因此在我们修改组件相关数据时候,会触发组件重新渲染,接着重新执行patch的过程 手写一个数据绑定: <input id="input" type="text" /> <div id="text"></div> let input = document.getElementById("input"); let text = document.getElementById("text"); let data = { value: "" }; Object.defineProperty(data, "value", { set: function(val) { text.innerHTML = val; input.value = val; }, get: function() { return input.value; } }); input.onkeyup = function(e) { data.value = e.target.value; };

九旬 2020-05-24 11:24:58 0 浏览量 回答数 0

问题

如何给项目选择最合适的编程语言?

chaipanpan 2019-12-01 21:04:01 9813 浏览量 回答数 0

回答

Vue 相对不于 React 的一个优点是它易于理解和学习,且在国内占大多数。咱们可以在 Vue 的帮助下创建任何 Web 应用程序。 因此,时时了解一些新出现又好用的Vue 开源项目也是挺重要,一方面可以帮助咱们更加高效的开发,另一方面,咱们也可以模范学习其精华部分。 接下来看看新出的有哪些好用的开源项目。 uiGradients 网址: http://uigradients.com/ GitHub: https://github.com/ghosh/uiGradients GitHub Stars: 4.6k 彩色阵列和出色的UX使是这个项目的一个亮点,渐变仍然是网页设计中日益增长的趋势。 咱们可以选择所需的颜色,并可以获得所有可能的渐变,并获取对应的 CSS 代码, 赶紧收藏起来吧。 CSSFX CSS 过度效果的集合 网址: https://cssfx.dev GitHub: https://github.com/jolaleye/cssfx GitHub Stars: 3.5k CSSFX 里面有很多 CSS 过滤效果,咱们可以根据需求选择特定的动画,点击对应的效果即可看到生成的 CSS 代码,动手搞起来吧。 Sing App Vue Dashboard 一个管理模板 网址: https://flatlogic.com/templat... GitHub: https://github.com/flatlogic/sing-app-vue-dashboard GitHub Stars: 254 事例:https://flatlogic.com/templates/sing-app-vue-dashboard/demo 文档:https://demo.flatlogic.com/sing-app/documentation/ 这是基于最新 Vue 和 Bootstrap 免费和开源的管理模板,其实跟咱们国内的 vue-admin-template 差不多。咱们不一定要使用它,但可以研究学习源码,相信可以学到很多实用的技巧,加油少年。 Vue Storefront 网址: https://www.vuestorefront.io GitHub: https://github.com/DivanteLtd/vue-storefront GitHub Stars: 5.8k 这是一个PWA,可以连接到任何后端(或几乎任何后端)。这个项目的主要优点是使用了无头架构。这是一种全面的解决方案,为咱们提供了许多可能性(巨大的支持稳步增长的社区,服务器端渲染,将改善网页SEO,移动优先的方法和离线模式。 Faviator 图标生成的库 网址: https://www.faviator.xyz GitHub: https://www.faviator.xyz/playground GitHub Stars: 94 如果需要创建一个图标增加体验度。 可以使用任何 Google 字体以及任何颜色。只需通过首选的配置,然后选择PNG,SVG或JPG格式即可。 iView Vue UI 组件库 网址: https://iviewui.com/ GitHub: https://github.com/iview/iview GitHub Stars: 22.8k 不断迭代更新使这组UI组件成为具有任何技能水平的开发人员的不错选择。 要使用iView,需要对单一文件组件有充分的了解,该项目具有友好的API和大量文档。 Postwoman API请求构建器 网址: https://postwoman.io/ GitHub: https://github.com/liyasthomas/postwoman GitHub Stars: 10.5k 这个与 Postman 类似。 它是免费的,具有许多参与者,并且具有多平台和多设备支持。 这个工具真的非常快,并且有大量的更新。 该工具的创建者声称在不久的将来会有更多功能。 Vue Virtual Scroller 快速滚动 网址: https://akryum.github.io/vue-virtual-scroller/#/ GitHub: https://github.com/Akryum/vue-virtual-scroller GitHub Stars: 3.4k Vue Virtual Scroller具有四个主要组件。 RecycleScroller可以渲染列表中的可见项。 如果咱们不知道数据具体的数量,最好使用DynamicScroller。 DynamicScrollerItem将所有内容包装在DynamicScroller中(以处理大小更改)。 IdState简化了本地状态管理(在RecycleScroller内部)。 Mint UI 移动端的 UI 库 网址: http://mint-ui.github.io/#!/en GitHub: https://github.com/ElemeFE/mint-ui GitHub Stars: 15.2k 使用现成的CSS和JS组件更快地构建移动应用程序。使用此工具,咱们不必承担文件大小过大的风险,因为可以按需加载。动画由CSS3处理,由此来提高性能。 V Calendar 用于构建日历的无依赖插件 网址: https://vcalendar.io GitHub:https://github.com/nathanreyes/v-calendar GitHub Stars: 1.6k 您可以选择不同的视觉指示器来装饰日历。 V Calendar还为咱们提供了三种日期选择模式: 单选 多选 日期范围 Vue Design System 一组UI工具 网址: https://vueds.com/ GitHub: https://github.com/viljamis/vue-design-system GitHub Stars: 1.7k 这是一种组织良好的工具,对于任何web开发团队来说,它的命名都很容易理解。其中一个很大的优点是使用了更漂亮的代码格式化器,它可以在提交到Git之前自动排列代码。 Proppy UI组件的功能道具组合 网址: https://proppyjs.com GitHub: https://github.com/fahad19/proppy GitHub Stars: 856 ProppyJS 是一个很小的库,用于组合道具,它附带了各种集成包,让您可以自由地使用它流行的渲染库。 我们的想法是首先将Component的行为表达为props,然后使用Proppy的相同API将其连接到您的Component(可以是React,Vue.js或Preact)。 API还允许您访问其他应用程序范围的依赖项(如使用Redux的商店),以方便组件树中的任何位置。 Light Blue Vue Admin vue 后台展示模板 网址: https://flatlogic.com/templates/light-blue-vue-lite GitHub: https://github.com/flatlogic/light-blue-vue-admin GitHub Stars: 79 事例: https://demo.flatlogic.com/light-blue-vue-admin/#/app/dashboard 文档: https://demo.flatlogic.com/light-blue/documentation/ 模板是用Vue CLI和Bootstrap 4构建的。从演示中可以看到,这个模板有一组非常基本的页面:排版、地图、图表、聊天界面等。如果咱们需要一个扩展的模板,可以看看Light Blue Vue Full,它有60多个组件,无 jquery,有两个颜色主题。 Vue API Query 为 REST API 构建请求 GitHub: https://github.com/robsontenorio/vue-api-query GitHub Stars: 1.1k 关于这个项目没什么好说的。它所做的与描述行中所写的完全一样:它帮助咱们构建REST API的请求。 Vue Grid Layout Vue 的网格布局 Website: https://jbaysolutions.github.io/vue-grid-layout/examples/01-basic.html GitHub: https://github.com/jbaysolutions/vue-grid-layout GitHub Stars: 3.1k 所有网格相关问题的简单解决方案。它有静态的、可调整大小的和可拖动的小部件。还是响应和布局可以恢复和序列化。如果还需要再添加一个小部件,则不必重新构建所有网格。 Vue Content Loader 创建一个占位符加载 Website: http://danilowoz.com/create-vue-content-loader GitHub: https://github.com/egoist/vue-content-loader GitHub Stars: 2k 当咱们开发网站或者 APP 时,遇到内容过多加载速度慢时,会导致用户打开页面有大量空白页,vue-content-loader正是解决这个问题的一个组件,使加载内容之前生成一个dom模板,提高用户体验。 Echarts with Vue2.0 数据可视化 Website: https://simonzhangiter.github.io/DataVisualization/#/dashboard GitHub: https://github.com/SimonZhangITer/DataVisualization GitHub Stars: 1.3k 在图片中,咱们可以看到非常漂亮的图表。这个项目使任何数据都更具可读性,更容易理解和解释。它允许咱们在任何数据集中轻松地检测趋势和模式。 Vue.js Modal 高度可定制的模态框 Website: http://vue-js-modal.yev.io/ GitHub: https://github.com/euvl/vue-js-modal GitHub Stars: 2.9k 可以在该网站上查看所有不同类型的模态。 有15个按钮,按任意一个按钮,看到一个模态示例。 Vuesax 框架组件 Website: https://lusaxweb.github.io/vuesax/ GitHub: https://github.com/lusaxweb/vuesax GitHub Stars: 3.7k 这个项目在社区中很受欢迎。 它使咱们可以为每个组件设计不同的风格。 Vuesax的创建者强调,每个Web开发人员在进行Web设计时都应有选择的自由。 Vue2 Animate vue2.0 —使用animate.css 构建项目和创建组件 Website: https://the-allstars.com/vue2-animate/ GitHub: https://github.com/asika32764/vue2-animate GitHub Stars: 1.1k 这个库是跨浏览器的,咱们可以选择从5种类型的动画: rotate,slide,fade,bounce和zoom。在网站上有一个演示。动画的默认持续时间是1秒,但是咱们可以自定义该参数。 Vuetensils Vue.js的工具集 Website: https://vuetensils.stegosource.com/ GitHub: https://github.com/stegosource/vuetensils GitHub Stars: 111 这个UI库有一个标准的功能,但是最酷的是它没有额外的样式。你可以让设计尽可能的个性化,应用所有的需求。只需编写需要的样式,将其添加到项目中,并包含需要的尽可能多的组件。

茶什i 2020-01-09 10:39:02 0 浏览量 回答数 0

问题

业务实时监控服务 ARMS名词应该如何解释?

猫饭先生 2019-12-01 21:24:00 983 浏览量 回答数 0

问题

【精品问答】大数据常见技术问题100问

珍宝珠 2020-02-17 13:02:59 19 浏览量 回答数 1

问题

聊聊JStorm的最佳实践

爵霸 2019-12-01 21:54:49 3569 浏览量 回答数 0

回答

1.产品2.UI3.CSS4.JS5.后端(Java/php/python)6.DBA(mysql/oracle)7.运维(OP) 8.测试(QA)9.算法(分类/聚类/关系抽取/实体识别)10.搜索(Lucene/Solr/elasticSearch)11.大数据工程师(Hadoop)12.Android13.IOS14.运营 一.产品1 工作内容:了解用户需求,做竞品调研,画产品原型,写产品文档,讲解产品需求,测试产品Bug,收集用户反馈,苦练金刚罩以防止程序员拿刀砍。2 需要技能:PPT,Word, Axure,XP,MVP,行业知识,沟通。 二. UI1 工作内容:收到产品原型,给原型上色,偶尔会自作主张调整下原型的位置,出不同的风格给老板和客户选,然后听他们的意见给出一个自己极不喜欢的风格,最好给Android,IOS或者是CSS做好标注,还有的需要直接帮他们切好图,最后要练出来象素眼,看看这些不靠谱的程序员们有没有上错色或者是有偏差。2 需要技能:PS,Illustrator,Sketch,耐性,找素材。 三. CSS1 工作内容:产品设计好原型,UI做出来了效果图,剩下的就是CSS工程师用代码把静态文件写出来的。 2 需要技能:环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】基础【PS,域名,Html,Html5,CSS,CSS3】扩展【自适应,响应式,Bootstrap,Less,Flex】 四 .JS 1 工作内容:JS工程师其实分成两类,在之前讲CSS的时候已经提到过,一个是套页面的,一个是前后端分离的。对这两个概念还是分不太清的,可以回过头去看CSS的部分。 2 需要技能:环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】基础【Http,REST,跨域,语法,组件,F12,Json,Websocket】框架【JQuery,AngularJS,Bower,RequireJS,GruntJS,ReactJS,PhoneGap】业务【金融,教育,医疗,汽车,房产等等等等各种行业】 五 .后端(Java/python/go) 1 工作内容:大部分的后端工程师都停留在功能实现的层面上。这是现在国内二流或者是三流的公司的现状,甚至是在某些一流的公司。很多时候都是架构师出了架构设计,更多的外包公司根本就是有DBA来做设计,然后后端程序员从JS到CSS到Java全写,完全就是一个通道,所有的复杂逻辑全部交给DB来做,这也是几年前DBA很受重视的原因。 2 需要技能:环境【IDE(Idea/Eclipse,Maven,jenkins,Nexus,Jetty,Shell,Host),源码管理(SVN/Git) ,WEB服务器(nginx,tomcat,Resin)】基础【Http,REST,跨域,语法,Websocket,数据库,计算机网络,操作系统,算法,数据结构】框架【Spring,AOP,Quartz,Json TagLib,tiles,activeMQ,memcache,redis,mybatis,log4j,junit等等等等等】业务【金融,教育,医疗,汽车,房产等等等等各种行业】。 六 .DBA  1 工作内容:如果你做了一个DBA,基本上会遇到两种情况。一种是你的后端工程师懂架构,知道怎么合便使用DB,知道如何防止穿透DB,那么恭喜你,你只是需要当一个DB技术兜底的顾问就好,基本上没什么活可以做,做个监控,写个统计就好了。你可以花时间在MongoDB了,Hadoop了这些,随便玩玩儿。再按照我之前说的,做好数据备份。如果需求变动比较大,往往会牵涉到一些线上数据的更改,那么就在发布的时候安静的等着,等着他们出问题。。。。如果不出问题就可以回家睡觉了。 2 需要技能:环境【Linux,Mysql,Oracle,MongoDB,Hadoop】工具【各种DB的版本,工具,备份,日志等】。 七. 运维  1 工作内容:运维的工作大概分成几个部分,我对于修真院学习运维的少年们都这么说,大概是:A。基础环境的搭建和常用软件的安装和配置(兼网管的还有各种程控机),常用软件指的是SVN,Git,邮箱这种,更细节的内容请参考修真院对于运维职业的介绍。B。日常的发布和维护,如刚刚讲到的一样,测试环境和线上环境的发布和记录,原则上,对线上所有的变更都应该有记录。C。数据的备份和服务的监控&安全配置。各种数据,都要做好备份和回滚的手段,提前准备好各种紧急预案,服务的监制要做好。安全始终都是不怎么被重点考虑的问题,因为这个东西无底洞,你永远不知道做到什么程度算是比较安全了,所以大多数都是看着情况来。D。运维工具的编写。这一点在大的云服务器商里格外常见,大公司也是一样的。E。Hadoop相关的大数据体系架构的运维,确实有公司在用几百台机器做Hadoop,所以虽然不常见,我还是列出来吧。 2 需要技能:环境【Linux,Mysql,Oracle,MongoDB,Hadoop,nginx,apache,F5,lvs,vpn,iptable,svn,git,memcache,redis】工具【linux 常用工具,Mysql常用工具,Jenkins,zabbix,nagios】自动化运维【openstack,docker,ansible】语言【shell,python】 八 .QA  1 工作内容:QA需要了解需求,很多公司会要求QA写测试用例,我觉得是扯淡。完全是在浪费时间。通常开发三周,QA测试的时间只有一周到一周半。还有关于提前写测试用例的,都不靠谱。 2 需要技能:流程【Bug修复流程,版本发布流程】工具【禅道,BugZilla,Jira,Excel表格来统计Bug数,自动化测试】性格【严谨,耐心】 九. 算法工程师  1 工作内容:算法工程师的工作内容,大部分时间都是在调优。就是调各种参数和语料,寻找特征,验证结果,排除噪音。也会和Hadoop神马的打一些交道,mahout神马的,我那个时候还在用JavaML。现在并不知道有没有什么更好用的工具了。有的时候还要自己去标注语料---当然大部分人都不爱做这个事儿,会找漂亮的小编辑去做。2 需要技能:基础【机器学习,数据挖掘】工具【Mahout,JavaML等其他的算法工具集】 十. 搜索工程师  1 工作内容: 所以搜索现在其实分成两种。一种是传统的搜索。包括:A。抓取 B。解析C。去重D。处理E。索引F。查询另一种是做为架构的搜索。并不包括之前的抓取解析去重,只有索引和查询。A。索引B。查询 2 需要技能:环境【Linux】框架【Luence,Slor,ElasticSearch,Cassandra,MongoDB】算法【倒排索引,权重计算公式,去重算法,Facet搜索的原理,高亮算法,实时索引】 十一. 大数据工程师  1 工作内容:工作内容在前期会比较多一些,基础搭建还是一个挺讲究的事儿。系统搭建好之后呢,大概是两种,一种是向大数据部门提交任务,跑一圈给你。一种是持续的文本信息处理中增加新的处理模块,像我之前说的增加个分类啦,实体识别神马的。好吧第一种其实我也不记得是从哪得来的印象了,我是没有见到过的。架构稳定了之后,大数据部门的工作并不太多,常常会和算法工程师混到一起来。其他的应该就是大数据周边产品的开发工作了。再去解决一些Bug什么的。2 需要技能:环境【Linux】框架【Hadoo,spark,storm,pig,hive,mahout,zookeeper 】算法【mapreduce,hdfs,zookeeper】。 十二. Android工程师  1 工作内容:Android工程师的日常就是听产品经理讲需求,跟后端定接口,听QA反馈哪款机器不兼容,闹着申请各种测试机,以及悲催的用Android做IOS的控件。 2 需要技能:环境【Android Studio,Maven,Gradle】基础【数据结构,Java,计算机网络】组件【IM,地图,支付,拍照,视频,音频,统计,分享,手势密码】 十三. IOS工程师  1 工作内容:IOS工程师的工作内容真的挺简单的,听需求,定接口。做个适配,抛弃一下iphone4。还有啥。。马丹,以我为数不多的IOS知识来讲,真的不知道还有啥了。我知道的比较复杂的系统也是各种背景高斯模糊,各种渐变,各种图片滤镜处理,其他并没有什么。支付,地图,统计这些东西。 嗯。2 需要技能:环境【Xcode】基础【数据结构,Object,计算机网络】组件【IM,地图,支付,拍照,视频,音频,统计,分享,手势密码】

行者武松 2019-12-02 01:21:45 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板