<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>小陀螺的博客</title>
  
  
  <link href="/myblog/atom.xml" rel="self"/>
  
  <link href="https://wllluoo.github.io/myblog/"/>
  <updated>2018-02-25T03:05:51.000Z</updated>
  <id>https://wllluoo.github.io/myblog/</id>
  
  <author>
    <name>wllluoo</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>js中的事件委托</title>
    <link href="https://wllluoo.github.io/myblog/2018/02/24/%E4%BA%8B%E4%BB%B6%E5%A7%94%E6%89%98/"/>
    <id>https://wllluoo.github.io/myblog/2018/02/24/事件委托/</id>
    <published>2018-02-23T16:00:00.000Z</published>
    <updated>2018-02-25T03:05:51.000Z</updated>
    
    <summary type="html">
    
    </summary>
    
    
      <category term="js" scheme="https://wllluoo.github.io/myblog/tags/js/"/>
    
  </entry>
  
  <entry>
    <title>特效：浏览器滚动时，文字滑入特效</title>
    <link href="https://wllluoo.github.io/myblog/2017/10/22/fade/"/>
    <id>https://wllluoo.github.io/myblog/2017/10/22/fade/</id>
    <published>2017-10-21T16:00:00.000Z</published>
    <updated>2018-02-17T15:02:12.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1-首先要获取内容进入屏幕边缘的零界点"><a href="#1-首先要获取内容进入屏幕边缘的零界点" class="headerlink" title="1.首先要获取内容进入屏幕边缘的零界点"></a>1.首先要获取内容进入屏幕边缘的零界点</h2><p>  可以通过 滚轮移动端距离 + 浏览器窗口大小 &gt; 元素距离页面顶部的距离来进行判断。<br>  监听浏览器滚动事件：</p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//给页面绑定滑轮滚动事件</span></span><br><span class="line"><span class="keyword">if</span> (<span class="built_in">document</span>.addEventListener) &#123;<span class="comment">//firefox</span></span><br><span class="line">  <span class="built_in">document</span>.addEventListener(<span class="string">'DOMMouseScroll'</span>, scrollFun, <span class="literal">false</span>);</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">//滚动滑轮触发scrollFunc方法 //ie 谷歌</span></span><br><span class="line"><span class="built_in">window</span>.onmousewheel = <span class="built_in">document</span>.onmousewheel = scrollFun;</span><br></pre></td></tr></table></figure><h5 id="若是移动端还需加上："><a href="#若是移动端还需加上：" class="headerlink" title="若是移动端还需加上："></a>若是移动端还需加上：</h5><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">document</span>.addEventListener(<span class="string">'scroll'</span>,scrollFun, <span class="literal">false</span>);</span><br></pre></td></tr></table></figure><h2 id="2-处理滚动事件："><a href="#2-处理滚动事件：" class="headerlink" title="2.处理滚动事件："></a>2.处理滚动事件：</h2><pre><code>当元素进入浏览器边缘时，对该元素添加一个class，令其具有滑入的特效。因此给需要有滑入特效的元素事先增加自定义的class，以便选中。 </code></pre><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">revealOnScroll</span>(<span class="params"></span>) </span>&#123;</span><br><span class="line">      <span class="keyword">var</span> scrolled = $(<span class="built_in">window</span>).scrollTop();  <span class="comment">// 获取滚动条移动的距离，即移动的位移</span></span><br><span class="line">      scrollFadeUpFun(scrolled, <span class="string">'fade’); // 选中所有class为fade的元素</span></span><br><span class="line"><span class="string">  &#125;</span></span><br></pre></td></tr></table></figure><h2 id="3-获取浏览器高度："><a href="#3-获取浏览器高度：" class="headerlink" title="3.获取浏览器高度："></a>3.获取浏览器高度：</h2><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> windowHeight = <span class="built_in">document</span>.body.clientHeight;</span><br></pre></td></tr></table></figure><h2 id="4-操作元素："><a href="#4-操作元素：" class="headerlink" title="4.操作元素："></a>4.操作元素：</h2><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">scrollFadeUpFun</span>(<span class="params">scrolled, element</span>) </span>&#123;</span><br><span class="line">  $(<span class="string">"."</span> + element).each(<span class="function"><span class="keyword">function</span>(<span class="params"></span>) </span>&#123;</span><br><span class="line">    <span class="keyword">var</span> $<span class="keyword">this</span> = $(<span class="keyword">this</span>),</span><br><span class="line">    fadeOffsetTop = $<span class="keyword">this</span>.offset().top; <span class="comment">// 该元素在dom中距离顶部的距离</span></span><br><span class="line">    <span class="keyword">if</span> (windowHeight + scrolled &gt; fadeOffsetTop) &#123;</span><br><span class="line">      <span class="comment">// 当 窗口高度 + 滚动的高度 &gt; 元素在dom中距离顶部的距离 即进入浏览器的下边缘时</span></span><br><span class="line">      $<span class="keyword">this</span>.addClass(<span class="string">'fade_up'</span>);</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;);</span><br><span class="line"> &#125;</span><br></pre></td></tr></table></figure><h2 id="5-html中-定义需滑入的元素"><a href="#5-html中-定义需滑入的元素" class="headerlink" title="5.html中, 定义需滑入的元素"></a>5.html中, 定义需滑入的元素</h2><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">'fade'</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">p</span>&gt;</span>回顾所来径<span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line">      <span class="tag">&lt;<span class="name">p</span>&gt;</span>苍苍横翠薇<span class="tag">&lt;/<span class="name">p</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span><br></pre></td></tr></table></figure><h2 id="6-给元素增加滑入渐变特效，如下所示，即元素的透明度从0-1变为1-位置从80px还原为0px。"><a href="#6-给元素增加滑入渐变特效，如下所示，即元素的透明度从0-1变为1-位置从80px还原为0px。" class="headerlink" title="6.给元素增加滑入渐变特效，如下所示，即元素的透明度从0.1变为1, 位置从80px还原为0px。"></a>6.给元素增加滑入渐变特效，如下所示，即元素的透明度从0.1变为1, 位置从80px还原为0px。</h2><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">元素自身样式</span><br><span class="line">  <span class="selector-class">.fade</span> &#123;</span><br><span class="line">  <span class="attribute">display</span>: block;</span><br><span class="line">  <span class="attribute">transform</span>: <span class="built_in">translateY</span>(80px);</span><br><span class="line">  <span class="attribute">opacity</span>: <span class="number">0.1</span>;</span><br><span class="line">  &#125;</span><br><span class="line">  定义滑入样式</span><br><span class="line">  <span class="selector-class">.fade_up</span> &#123;</span><br><span class="line">  <span class="attribute">transform</span>: <span class="built_in">translateY</span>(0px);</span><br><span class="line">  <span class="attribute">-webkit-transition</span>: -webkit-transform .<span class="number">8s</span> ease-out, opacity .<span class="number">8s</span> ease-in;</span><br><span class="line">  <span class="attribute">transition</span>: transform .<span class="number">8s</span> ease-out, opacity .<span class="number">8s</span> ease-in-out;</span><br><span class="line">  <span class="attribute">opacity</span>: <span class="number">1</span>;</span><br><span class="line">  &#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;1-首先要获取内容进入屏幕边缘的零界点&quot;&gt;&lt;a href=&quot;#1-首先要获取内容进入屏幕边缘的零界点&quot; class=&quot;headerlink&quot; title=&quot;1.首先要获取内容进入屏幕边缘的零界点&quot;&gt;&lt;/a&gt;1.首先要获取内容进入屏幕边缘的零界点&lt;/h2&gt;&lt;p&gt;  
      
    
    </summary>
    
    
      <category term="js" scheme="https://wllluoo.github.io/myblog/tags/js/"/>
    
  </entry>
  
  <entry>
    <title>typescript测试之小试牛刀</title>
    <link href="https://wllluoo.github.io/myblog/2017/09/03/typescript/"/>
    <id>https://wllluoo.github.io/myblog/2017/09/03/typescript/</id>
    <published>2017-09-02T16:00:00.000Z</published>
    <updated>2018-02-17T15:02:46.000Z</updated>
    
    <content type="html"><![CDATA[<p>TypeScript基于接口的强类型定义，能很好的弥补javascript语言的先天不足，并且遵循了es6标准，因此只要掌握了 TypeScript ，就相当于掌握了 JavaScript 语言的最新标准，并且能在老式浏览器上完整运行（先吹一波）。</p><h2 id="1-变量定义"><a href="#1-变量定义" class="headerlink" title="1.变量定义"></a>1.变量定义</h2><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> test: <span class="built_in">string</span> = <span class="string">'nihao'</span>; <span class="comment">// 字符串</span></span><br><span class="line"><span class="keyword">const</span> aaa: <span class="built_in">number</span> = <span class="number">12121</span>;   <span class="comment">// 数字</span></span><br><span class="line"><span class="keyword">const</span> member: <span class="built_in">string</span>[] = [<span class="string">'111'</span>, <span class="string">'222'</span>, <span class="string">'3333'</span>]; <span class="comment">// 字符串类型的数组</span></span><br><span class="line"><span class="built_in">console</span>.log(member.toString()); <span class="comment">// 111,222,3333</span></span><br></pre></td></tr></table></figure><h5 id="若不按给定的类型定义，将报错，如下："><a href="#若不按给定的类型定义，将报错，如下：" class="headerlink" title="若不按给定的类型定义，将报错，如下："></a>若不按给定的类型定义，将报错，如下：</h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">const</span> aaa: <span class="built_in">number</span> = <span class="string">'12121'</span>;  </span><br><span class="line"><span class="comment">// 报错： Type '"12121"' is not assignable to type 'number'.</span></span><br></pre></td></tr></table></figure><h2 id="2-接口的使用"><a href="#2-接口的使用" class="headerlink" title="2.接口的使用"></a>2.接口的使用</h2><p>例1:<br><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">interface</span> SuperHero &#123;</span><br><span class="line">    realName: <span class="built_in">String</span>;</span><br><span class="line">    superName: <span class="built_in">String</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">const</span> superman: SuperHero = &#123;</span><br><span class="line">  realName: <span class="string">'spiderman'</span>,    <span class="comment">// 需给出符合 SuperHero接口的数据类型的定义 </span></span><br><span class="line">  superName: <span class="string">'superman'</span>,</span><br><span class="line">&#125;;</span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">`<span class="subst">$&#123;superman.realName&#125;</span> is a <span class="subst">$&#123;superman.superName&#125;</span>`</span>);</span><br><span class="line"><span class="comment">// spiderman is a superman</span></span><br></pre></td></tr></table></figure></p><p>例2:<br><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">interface</span> SuperHero &#123;</span><br><span class="line">        realName: <span class="built_in">String</span>;</span><br><span class="line">        superName: <span class="built_in">String</span>;</span><br><span class="line">    &#125;</span><br><span class="line"><span class="comment">// 定义一个 SuperHero类型的数组, SuperHero的值，需是符合SuperHero借口定义的对象。</span></span><br><span class="line"><span class="keyword">const</span> SuperHeroes: SuperHero[] = [];  </span><br><span class="line">    SuperHeroes.push(&#123;</span><br><span class="line">      realName: <span class="string">'Ah way'</span>,</span><br><span class="line">      superName: <span class="string">'superman'</span>,</span><br><span class="line">    &#125;);</span><br><span class="line"><span class="built_in">console</span>.log(<span class="string">`<span class="subst">$&#123;SuperHeroes[0].realName&#125;</span> is a <span class="subst">$&#123;SuperHeroes[0].superName&#125;</span>`</span>);</span><br><span class="line"><span class="comment">// Ah way is a superman</span></span><br></pre></td></tr></table></figure></p><h2 id="3-方法的使用："><a href="#3-方法的使用：" class="headerlink" title="3.方法的使用："></a>3.方法的使用：</h2><p>例1:<br><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 定义一个接收两个number参数的方法，并返回数字类型的和</span></span><br><span class="line"><span class="keyword">const</span> getSum = <span class="function"><span class="keyword">function</span> (<span class="params">num1: <span class="built_in">number</span>, num2: <span class="built_in">number</span></span>): <span class="title">number</span> </span>&#123;    </span><br><span class="line">  <span class="keyword">return</span> num1 + num2;</span><br><span class="line">&#125;;</span><br><span class="line"><span class="keyword">const</span> sum1 = getSum(<span class="number">2</span>, <span class="number">5</span>); <span class="comment">// 7</span></span><br></pre></td></tr></table></figure></p><p>例2:<br><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 定义一个方法，其中num2 赋值为2, num3可不传或为number类型的参数</span></span><br><span class="line"><span class="keyword">const</span> getSum = <span class="function"><span class="keyword">function</span> (<span class="params">num1: <span class="built_in">number</span>, num2 = 2, num3?: <span class="built_in">number</span></span>): <span class="title">number</span> </span>&#123; </span><br><span class="line">  <span class="keyword">if</span> (<span class="keyword">typeof</span> num3 !== <span class="string">'undefined'</span>) &#123;</span><br><span class="line">    <span class="keyword">return</span> num1 + num2 + num3;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> num1 + num2;</span><br><span class="line">&#125;;</span><br><span class="line"><span class="keyword">const</span> sum1 = getSum(<span class="number">5</span>); <span class="comment">// 7</span></span><br><span class="line"><span class="keyword">const</span> sum2 = getSum(<span class="number">5</span>, <span class="number">2</span>, <span class="number">1</span>); <span class="comment">// 8</span></span><br></pre></td></tr></table></figure></p><p>例3:<br><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 定义一个方法，接收多个number的参数，并将所有参数整合为数组</span></span><br><span class="line"><span class="keyword">const</span> getSum = <span class="function"><span class="keyword">function</span> (<span class="params">...nums: <span class="built_in">number</span>[]</span>): <span class="title">void</span> </span>&#123; </span><br><span class="line">      <span class="keyword">const</span> sum = nums.reduce(<span class="function">(<span class="params">a, b</span>) =&gt;</span> a + b, <span class="number">0</span>);     </span><br><span class="line">    &#125;;</span><br><span class="line">getSum(<span class="number">5</span>, <span class="number">2</span>, <span class="number">1</span>);  <span class="comment">// 8</span></span><br></pre></td></tr></table></figure></p><h2 id="4-类继承接口的使用"><a href="#4-类继承接口的使用" class="headerlink" title="4.类继承接口的使用"></a>4.类继承接口的使用</h2><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 定义一个有drive参数的Vehicle接口，其中drive可以是任意的数据类型</span></span><br><span class="line"><span class="keyword">interface</span> Vehicle &#123;   </span><br><span class="line">    drive: <span class="built_in">any</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">class</span> Car <span class="keyword">implements</span> Vehicle &#123;  <span class="comment">// 定义一个Car继承Vehicle接口</span></span><br><span class="line">    <span class="keyword">constructor</span>(<span class="params"><span class="keyword">private</span> wheels: <span class="built_in">number</span></span>)&#123;&#125; <span class="comment">//构造器去接收wheels参数</span></span><br><span class="line">    drive() : <span class="built_in">void</span> &#123; </span><br><span class="line">        <span class="built_in">console</span>.log(<span class="string">'this.wheels'</span>, <span class="keyword">this</span>.wheels);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">var</span> car = <span class="keyword">new</span> Car(<span class="number">4</span>); <span class="comment">// 实例化一个Car对象</span></span><br><span class="line">car.drive(); <span class="comment">// this.wheels : 4</span></span><br></pre></td></tr></table></figure><h2 id="5-接收固定参数的方法"><a href="#5-接收固定参数的方法" class="headerlink" title="5.接收固定参数的方法"></a>5.接收固定参数的方法</h2><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">GetType</span>&lt;<span class="title">T</span>&gt;(<span class="params">val: T</span>): <span class="title">string</span> </span>&#123;</span><br><span class="line">  <span class="keyword">return</span> <span class="keyword">typeof</span> (val);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">const</span> testStr = <span class="string">'test'</span>;</span><br><span class="line"><span class="keyword">const</span> testNum = <span class="number">123</span>;</span><br><span class="line">GetType(testStr); <span class="comment">// string</span></span><br><span class="line">GetType(testNum); <span class="comment">// number</span></span><br></pre></td></tr></table></figure><h2 id="6-方法继承接口的使用"><a href="#6-方法继承接口的使用" class="headerlink" title="6. 方法继承接口的使用"></a>6. 方法继承接口的使用</h2><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">interface</span> Vehicle &#123;    </span><br><span class="line">    drive: <span class="built_in">any</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">class</span> Car <span class="keyword">implements</span> Vehicle &#123; <span class="comment">// </span></span><br><span class="line">    <span class="keyword">constructor</span>(<span class="params"><span class="keyword">private</span> wheels: <span class="built_in">number</span></span>)&#123;&#125;</span><br><span class="line">    drive(): <span class="built_in">void</span> &#123;</span><br><span class="line">        <span class="built_in">console</span>.log(<span class="string">'this.wheels'</span>, <span class="keyword">this</span>.wheels);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">var</span> car = <span class="keyword">new</span> Car(<span class="number">4</span>);</span><br><span class="line">  </span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">GetWheels</span>&lt;<span class="title">w</span> <span class="title">extends</span> <span class="title">Vehicle</span>&gt; (<span class="params">veh: w</span>): <span class="title">number</span> </span>&#123;</span><br><span class="line">    <span class="keyword">return</span> veh.drive();</span><br><span class="line">&#125;</span><br><span class="line">GetWheels(car); <span class="comment">// this.wheels : 4</span></span><br></pre></td></tr></table></figure><h2 id="7-接收固定参数的类"><a href="#7-接收固定参数的类" class="headerlink" title="7. 接收固定参数的类"></a>7. 接收固定参数的类</h2><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 构造一个GenericNumber类，其中有add方法，接收一个参数，作为add方法参数的类型</span></span><br><span class="line"><span class="keyword">class</span> GenericNumber&lt;T&gt;&#123;  </span><br><span class="line">    add: <span class="function">(<span class="params">val1: T, val2: T</span>) =&gt;</span> T;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">var</span> aNumber = <span class="keyword">new</span> GenericNumber&lt;<span class="built_in">number</span>&gt;(); <span class="comment">// new 一个GenericNumber类的实例，并定义add方法接收Number类型的参数</span></span><br><span class="line">aNumber.add = <span class="function"><span class="keyword">function</span>(<span class="params">x, y</span>) </span>&#123;</span><br><span class="line">    <span class="keyword">return</span> x + y;</span><br><span class="line">&#125;</span><br><span class="line"><span class="built_in">console</span>.log(aNumber.add(<span class="number">5</span>, <span class="number">4</span>));  <span class="comment">// 9</span></span><br><span class="line"><span class="built_in">console</span>.log(aNumber.add(<span class="string">'5'</span>, <span class="string">'4'</span>));  <span class="comment">// 报错 Argument of type '"5"' is not assignable to parameter of type 'number'.</span></span><br></pre></td></tr></table></figure>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;TypeScript基于接口的强类型定义，能很好的弥补javascript语言的先天不足，并且遵循了es6标准，因此只要掌握了 TypeScript ，就相当于掌握了 JavaScript 语言的最新标准，并且能在老式浏览器上完整运行（先吹一波）。&lt;/p&gt;
&lt;h2 id=&quot;
      
    
    </summary>
    
    
      <category term="TypeScript" scheme="https://wllluoo.github.io/myblog/tags/TypeScript/"/>
    
  </entry>
  
  <entry>
    <title>react中通过displayName改变组件名</title>
    <link href="https://wllluoo.github.io/myblog/2017/08/28/reactDisplay/"/>
    <id>https://wllluoo.github.io/myblog/2017/08/28/reactDisplay/</id>
    <published>2017-08-27T16:00:00.000Z</published>
    <updated>2018-02-17T15:13:29.000Z</updated>
    
    <content type="html"><![CDATA[<p>先讲一点react的基础部分：</p><h2 id="1-react中创建组件的写法"><a href="#1-react中创建组件的写法" class="headerlink" title="1. react中创建组件的写法:"></a>1. react中创建组件的写法:</h2><p><code>var a = &lt;Component {...props} /&gt;</code>，实质上是React调用createElement方法，生成一个虚拟的DOM元素。等同于如下：<br><code>var a = React.createElement(Component, props);</code></p><h2 id="2-创建类的写法："><a href="#2-创建类的写法：" class="headerlink" title="2. 创建类的写法："></a>2. 创建类的写法：</h2><p> <code>class Component{ }</code>，其本质是一个方法， 在babel中转化如下：<br> <figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"> <span class="function"><span class="keyword">function</span> <span class="title">_classCallCheck</span>(<span class="params">instance, Constructor</span>) </span>&#123; </span><br><span class="line">  <span class="keyword">if</span> (!(instance <span class="keyword">instanceof</span> Constructor)) &#123;  <span class="comment">// 类型检测</span></span><br><span class="line">    <span class="keyword">throw</span> <span class="keyword">new</span> <span class="built_in">TypeError</span>(<span class="string">"Cannot call a class as a function"</span>); </span><br><span class="line">  &#125; </span><br><span class="line">&#125;</span><br><span class="line"> </span><br><span class="line"><span class="keyword">var</span> Component = <span class="function"><span class="keyword">function</span> <span class="title">Component</span>(<span class="params"></span>) </span>&#123;</span><br><span class="line">  _classCallCheck(<span class="keyword">this</span>, Component);</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure></p><h2 id="3-在DOM中渲染一个button按钮："><a href="#3-在DOM中渲染一个button按钮：" class="headerlink" title="3. 在DOM中渲染一个button按钮："></a>3. 在DOM中渲染一个button按钮：</h2><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">var</span> child = React.createElement(<span class="string">'p'</span>, &#123; <span class="attr">id</span>: <span class="string">'bbb'</span> &#125;, <span class="string">'click me'</span>);</span><br><span class="line"><span class="keyword">var</span> app = React.createElement(<span class="string">'button'</span>, &#123; <span class="attr">id</span>: <span class="string">'aaa'</span>, <span class="attr">onClick</span>: <span class="function"><span class="params">()</span> =&gt;</span> <span class="built_in">console</span>.log(<span class="number">1111</span>) &#125;, child);</span><br><span class="line">ReactDOM.render(app, <span class="built_in">document</span>.getElementById(<span class="string">'root'</span>));</span><br></pre></td></tr></table></figure><p>上述将生成一个包裹着p标签的button组件。ReactElement: 一个描述DOM节点或component实例的字面级对象。创建并返回一个新的react element元素及虚拟DOM对象。type可以是一个普通的标签名如div或span, 亦可以是react组件类型（class或是function)。</p><h2 id="4-提供一个改变组件名字的方法："><a href="#4-提供一个改变组件名字的方法：" class="headerlink" title="4. 提供一个改变组件名字的方法："></a>4. 提供一个改变组件名字的方法：</h2><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">ButtonForTest</span> <span class="keyword">extends</span> <span class="title">Component</span> </span>&#123;  <span class="comment">// 写一个class供addName方法使用，也可以是一个function</span></span><br><span class="line">  render() &#123;</span><br><span class="line">    <span class="keyword">return</span> (</span><br><span class="line">      &lt;Button&gt;<span class="number">1111</span>&lt;<span class="regexp">/Button&gt;</span></span><br><span class="line"><span class="regexp">    )</span></span><br><span class="line"><span class="regexp">  &#125;</span></span><br><span class="line"><span class="regexp">&#125; </span></span><br><span class="line"><span class="regexp">function addName(name, Component) &#123; /</span><span class="regexp">/ 接收一个名字，及一个组件</span></span><br><span class="line"><span class="regexp">  function WithName(props) &#123;</span></span><br><span class="line"><span class="regexp">    return &lt;Component &#123;...props&#125; /</span>&gt;;</span><br><span class="line">  &#125;</span><br><span class="line">  WithName.displayName = <span class="string">`<span class="subst">$&#123;name&#125;</span>`</span>;  <span class="comment">// 改变function 的名字,即改变WithName类的名字。</span></span><br><span class="line">  <span class="keyword">return</span> WithName;</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">const</span> newName = &#123; <span class="attr">key</span>: addName(<span class="string">'NewName'</span>, ButtonForTest) &#125;;</span><br><span class="line"><span class="keyword">const</span> NewComponent = <span class="xml"><span class="tag">&lt;<span class="name">newName.key</span> /&gt;</span>; // -》 var c = React.createElement(newName.key, null);</span></span><br></pre></td></tr></table></figure><p>上诉NewComponent所得为NewName组件下包含着ButtonForTest组件。</p><p><strong>笔者一直感到奇怪，NewComponent获得的是一个带有display属性的function，并不是一个class，为什么也可以渲染出来呢。</strong></p><p><strong>其实上面已经说到了，类的本质就是一个方法。 <code>&lt;newName.key /&gt;</code>转化为js的写法是 <code>React.createElement(newName.key, null)</code>，createElement接收三个参数（type, config, children）, type属性为字符串时，它代表是普通的节点，如div,span。type属性为一个函数或一个类时，它代表自定义的节点。因此上述方法即是获得一个addName方法返回的组件，其中对所要包裹的组件，(即第二个参数)外部包裹一层名为NewName 的组件。</strong></p><h2 id="5-简单看一下react中createElement部分："><a href="#5-简单看一下react中createElement部分：" class="headerlink" title="5. 简单看一下react中createElement部分："></a>5. 简单看一下react中createElement部分：</h2><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br></pre></td><td class="code"><pre><span class="line">ReactElement.createElement = <span class="function"><span class="keyword">function</span>(<span class="params">type, config, children</span>) </span>&#123;</span><br><span class="line">  <span class="keyword">var</span> propName;</span><br><span class="line"> </span><br><span class="line">  <span class="comment">// Reserved names are extracted</span></span><br><span class="line">  <span class="keyword">var</span> props = &#123;&#125;;</span><br><span class="line"> </span><br><span class="line">  <span class="keyword">var</span> key = <span class="literal">null</span>;</span><br><span class="line">  <span class="keyword">var</span> ref = <span class="literal">null</span>;</span><br><span class="line">  <span class="keyword">var</span> self = <span class="literal">null</span>;</span><br><span class="line">  <span class="keyword">var</span> source = <span class="literal">null</span>;</span><br><span class="line"> </span><br><span class="line">  <span class="keyword">if</span> (config != <span class="literal">null</span>) &#123;</span><br><span class="line">    <span class="keyword">if</span> (hasValidRef(config)) &#123;</span><br><span class="line">      ref = config.ref;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (hasValidKey(config)) &#123;</span><br><span class="line">      key = <span class="string">''</span> + config.key;</span><br><span class="line">    &#125;</span><br><span class="line"> </span><br><span class="line">    self = config.__self === <span class="literal">undefined</span> ? <span class="literal">null</span> : config.__self;</span><br><span class="line">    source = config.__source === <span class="literal">undefined</span> ? <span class="literal">null</span> : config.__source;</span><br><span class="line">    <span class="comment">// Remaining properties are added to a new props object</span></span><br><span class="line">    <span class="comment">// 将config里的属性复制到props中去</span></span><br><span class="line">    <span class="keyword">for</span> (propName <span class="keyword">in</span> config) &#123;</span><br><span class="line">      <span class="keyword">if</span> (</span><br><span class="line">        hasOwnProperty.call(config, propName) &amp;&amp;</span><br><span class="line">        !RESERVED_PROPS.hasOwnProperty(propName)</span><br><span class="line">      ) &#123;</span><br><span class="line">        props[propName] = config[propName];</span><br><span class="line">      &#125;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line"> </span><br><span class="line">  <span class="comment">// Children can be more than one argument, and those are transferred onto</span></span><br><span class="line">  <span class="comment">// the newly allocated props object.</span></span><br><span class="line">  <span class="comment">//处理children,全部挂载到props的children属性上</span></span><br><span class="line">  <span class="comment">//支持两种写法，如果只有一个参数，直接赋值给children，否则做合并处理</span></span><br><span class="line">  <span class="keyword">var</span> childrenLength = <span class="built_in">arguments</span>.length - <span class="number">2</span>;</span><br><span class="line">  <span class="keyword">if</span> (childrenLength === <span class="number">1</span>) &#123;</span><br><span class="line">    props.children = children;</span><br><span class="line">  &#125; <span class="keyword">else</span> <span class="keyword">if</span> (childrenLength &gt; <span class="number">1</span>) &#123;</span><br><span class="line">    <span class="keyword">var</span> childArray = <span class="built_in">Array</span>(childrenLength);</span><br><span class="line">    <span class="keyword">for</span> (<span class="keyword">var</span> i = <span class="number">0</span>; i &lt; childrenLength; i++) &#123;</span><br><span class="line">      childArray[i] = <span class="built_in">arguments</span>[i + <span class="number">2</span>];</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (__DEV__) &#123;</span><br><span class="line">      <span class="keyword">if</span> (<span class="built_in">Object</span>.freeze) &#123;</span><br><span class="line">        <span class="built_in">Object</span>.freeze(childArray);</span><br><span class="line">      &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    props.children = childArray;</span><br><span class="line">  &#125;</span><br><span class="line"> </span><br><span class="line">  <span class="comment">// Resolve default props</span></span><br><span class="line">  <span class="keyword">if</span> (type &amp;&amp; type.defaultProps) &#123;</span><br><span class="line">    <span class="keyword">var</span> defaultProps = type.defaultProps;</span><br><span class="line">    <span class="keyword">for</span> (propName <span class="keyword">in</span> defaultProps) &#123;</span><br><span class="line">      <span class="keyword">if</span> (props[propName] === <span class="literal">undefined</span>) &#123;</span><br><span class="line">        props[propName] = defaultProps[propName];</span><br><span class="line">      &#125;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">if</span> (__DEV__) &#123;</span><br><span class="line">    <span class="keyword">if</span> (key || ref) &#123;</span><br><span class="line">      <span class="keyword">if</span> (</span><br><span class="line">        <span class="keyword">typeof</span> props.$$<span class="keyword">typeof</span> === <span class="string">'undefined'</span> ||</span><br><span class="line">        props.$$<span class="keyword">typeof</span> !== REACT_ELEMENT_TYPE</span><br><span class="line">      ) &#123;</span><br><span class="line">        <span class="keyword">var</span> displayName = <span class="keyword">typeof</span> type === <span class="string">'function'</span></span><br><span class="line">          ? type.displayName || type.name || <span class="string">'Unknown'</span></span><br><span class="line">          : type;</span><br><span class="line">        <span class="keyword">if</span> (key) &#123;</span><br><span class="line">          defineKeyPropWarningGetter(props, displayName);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (ref) &#123;</span><br><span class="line">          defineRefPropWarningGetter(props, displayName);</span><br><span class="line">        &#125;</span><br><span class="line">      &#125;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  <span class="keyword">return</span> ReactElement( <span class="comment">// 返回ReactElement对象供React使用。</span></span><br><span class="line">    type,</span><br><span class="line">    key,</span><br><span class="line">    ref,</span><br><span class="line">    self,</span><br><span class="line">    source,</span><br><span class="line">    ReactCurrentOwner.current,</span><br><span class="line">    props,</span><br><span class="line">  );</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure><blockquote><p>官方有更详尽的讲解：<a href="https://facebook.github.io/react/docs/react-api.html#createelement" target="_blank" rel="noopener">https://facebook.github.io/react/docs/react-api.html#createelement</a></p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;先讲一点react的基础部分：&lt;/p&gt;
&lt;h2 id=&quot;1-react中创建组件的写法&quot;&gt;&lt;a href=&quot;#1-react中创建组件的写法&quot; class=&quot;headerlink&quot; title=&quot;1. react中创建组件的写法:&quot;&gt;&lt;/a&gt;1. react中创建组件的写法
      
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title>如何在vue中使用highcharts--vue2-highcharts</title>
    <link href="https://wllluoo.github.io/myblog/2017/08/17/assign/"/>
    <id>https://wllluoo.github.io/myblog/2017/08/17/assign/</id>
    <published>2017-08-16T16:00:00.000Z</published>
    <updated>2018-02-18T14:43:20.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="1-首先。需要npm-i-s-vue2-highcharts，安装到项目所需的依赖中。"><a href="#1-首先。需要npm-i-s-vue2-highcharts，安装到项目所需的依赖中。" class="headerlink" title="1.首先。需要npm i -s vue2-highcharts，安装到项目所需的依赖中。"></a>1.首先。需要npm i -s vue2-highcharts，安装到项目所需的依赖中。</h2><h2 id="2-然后：首先参考官网给出的例子可以满足你的基本上所有的需求了。"><a href="#2-然后：首先参考官网给出的例子可以满足你的基本上所有的需求了。" class="headerlink" title="2.然后：首先参考官网给出的例子可以满足你的基本上所有的需求了。"></a>2.然后：首先参考官网给出的例子可以满足你的基本上所有的需求了。</h2><h2 id="3-具体代码如下："><a href="#3-具体代码如下：" class="headerlink" title="3.具体代码如下："></a>3.具体代码如下：</h2><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">template</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">vue-highcharts</span> <span class="attr">:options</span>=<span class="string">"options"</span> <span class="attr">ref</span>=<span class="string">"lineCharts"</span>&gt;</span><span class="tag">&lt;/<span class="name">vue-highcharts</span>&gt;</span></span><br><span class="line">  <span class="tag">&lt;<span class="name">button</span> @<span class="attr">click</span>=<span class="string">"load"</span>&gt;</span>load<span class="tag">&lt;/<span class="name">button</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;/<span class="name">template</span>&gt;</span></span><br><span class="line"><span class="tag">&lt;<span class="name">script</span>&gt;</span><span class="undefined"></span></span><br><span class="line"><span class="undefined">import VueHighcharts from 'vue2-highcharts'</span></span><br><span class="line"><span class="undefined">const asyncData = &#123;</span></span><br><span class="line"><span class="undefined">  name: 'Tokyo',</span></span><br><span class="line"><span class="undefined">  marker: &#123;</span></span><br><span class="line"><span class="undefined">    symbol: 'square'</span></span><br><span class="line"><span class="undefined">  &#125;,</span></span><br><span class="line"><span class="undefined">  data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, &#123;</span></span><br><span class="line"><span class="undefined">    y: 26.5,</span></span><br><span class="line"><span class="undefined">    marker: &#123;</span></span><br><span class="line"><span class="undefined">      symbol: 'url(http://www.highcharts.com/demo/gfx/sun.png)'</span></span><br><span class="line"><span class="undefined">    &#125;</span></span><br><span class="line"><span class="undefined">  &#125;, 23.3, 18.3, 13.9, 9.6]</span></span><br><span class="line"><span class="undefined">&#125;</span></span><br><span class="line"><span class="undefined">export default&#123;</span></span><br><span class="line"><span class="undefined">    components: &#123;</span></span><br><span class="line"><span class="undefined">        VueHighcharts</span></span><br><span class="line"><span class="undefined">    &#125;,</span></span><br><span class="line"><span class="undefined">    data()&#123;</span></span><br><span class="line"><span class="undefined">      return&#123;</span></span><br><span class="line"><span class="undefined">        options: &#123;</span></span><br><span class="line"><span class="undefined">          chart: &#123;</span></span><br><span class="line"><span class="undefined">            type: 'spline'</span></span><br><span class="line"><span class="undefined">          &#125;,</span></span><br><span class="line"><span class="undefined">          title: &#123;</span></span><br><span class="line"><span class="undefined">            text: 'Monthly Average Temperature'</span></span><br><span class="line"><span class="undefined">          &#125;,</span></span><br><span class="line"><span class="undefined">          subtitle: &#123;</span></span><br><span class="line"><span class="undefined">            text: 'Source: WorldClimate.com'</span></span><br><span class="line"><span class="undefined">          &#125;,</span></span><br><span class="line"><span class="undefined">          xAxis: &#123;</span></span><br><span class="line"><span class="undefined">            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',</span></span><br><span class="line"><span class="undefined">              'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']</span></span><br><span class="line"><span class="undefined">          &#125;,</span></span><br><span class="line"><span class="undefined">          yAxis: &#123;</span></span><br><span class="line"><span class="undefined">            title: &#123;</span></span><br><span class="line"><span class="undefined">              text: 'Temperature'</span></span><br><span class="line"><span class="undefined">            &#125;,</span></span><br><span class="line"><span class="undefined">            labels: &#123;</span></span><br><span class="line"><span class="undefined">              formatter: function () &#123;</span></span><br><span class="line"><span class="undefined">                return this.value + '°';</span></span><br><span class="line"><span class="undefined">              &#125;</span></span><br><span class="line"><span class="undefined">            &#125;</span></span><br><span class="line"><span class="undefined">          &#125;,</span></span><br><span class="line"><span class="undefined">          tooltip: &#123;</span></span><br><span class="line"><span class="undefined">            crosshairs: true,</span></span><br><span class="line"><span class="undefined">            shared: true</span></span><br><span class="line"><span class="undefined">          &#125;,</span></span><br><span class="line"><span class="undefined">          credits: &#123;</span></span><br><span class="line"><span class="undefined">            enabled: false</span></span><br><span class="line"><span class="undefined">          &#125;,</span></span><br><span class="line"><span class="undefined">          plotOptions: &#123;</span></span><br><span class="line"><span class="undefined">            spline: &#123;</span></span><br><span class="line"><span class="undefined">              marker: &#123;</span></span><br><span class="line"><span class="undefined">                radius: 4,</span></span><br><span class="line"><span class="undefined">                lineColor: '#666666',</span></span><br><span class="line"><span class="undefined">                lineWidth: 1</span></span><br><span class="line"><span class="undefined">              &#125;</span></span><br><span class="line"><span class="undefined">            &#125;</span></span><br><span class="line"><span class="undefined">          &#125;,</span></span><br><span class="line"><span class="undefined">          series: []</span></span><br><span class="line"><span class="undefined">        &#125;;</span></span><br><span class="line"><span class="undefined">      &#125;</span></span><br><span class="line"><span class="undefined">    &#125;,</span></span><br><span class="line"><span class="undefined">    methods&#123;</span></span><br><span class="line"><span class="undefined">      load()&#123;</span></span><br><span class="line"><span class="undefined">          let lineCharts = this.$refs.lineCharts;</span></span><br><span class="line"><span class="undefined">          lineCharts.delegateMethod('showLoading', 'Loading...');</span></span><br><span class="line"><span class="undefined">          setTimeout(() =&gt; &#123;</span></span><br><span class="line"><span class="undefined">              lineCharts.addSeries(asyncData);</span></span><br><span class="line"><span class="undefined">              lineCharts.hideLoading();</span></span><br><span class="line"><span class="undefined">          &#125;, 2000)</span></span><br><span class="line"><span class="undefined">      &#125;</span></span><br><span class="line"><span class="undefined">    &#125;</span></span><br><span class="line"><span class="undefined">&#125;</span></span><br><span class="line"><span class="undefined"></span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure><blockquote><p>这里可以使用异步的数据，比如从接口取数据，或者从父级传递下来。<br>要注意的是asyncData需要是一个对象，然后lineCharts.removeSeries（）每调用一次就会清掉一个已有的曲线</p></blockquote>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;1-首先。需要npm-i-s-vue2-highcharts，安装到项目所需的依赖中。&quot;&gt;&lt;a href=&quot;#1-首先。需要npm-i-s-vue2-highcharts，安装到项目所需的依赖中。&quot; class=&quot;headerlink&quot; title=&quot;1.首先。需
      
    
    </summary>
    
    
      <category term="vue" scheme="https://wllluoo.github.io/myblog/tags/vue/"/>
    
  </entry>
  
  <entry>
    <title>mac下开启Atom live server 服务</title>
    <link href="https://wllluoo.github.io/myblog/2017/08/01/liveServer/"/>
    <id>https://wllluoo.github.io/myblog/2017/08/01/liveServer/</id>
    <published>2017-07-31T16:00:00.000Z</published>
    <updated>2018-02-18T14:46:42.000Z</updated>
    
    <content type="html"><![CDATA[<p>在mac环境下，开启atom插件atom live server 服务，步骤如下：</p><h2 id="1-安装atom-live-server后重启atom。"><a href="#1-安装atom-live-server后重启atom。" class="headerlink" title="1.安装atom live server后重启atom。"></a>1.安装atom live server后重启atom。</h2><h2 id="2-打开命令面板-快捷键-cmd-shift-p-输入“incompatible-packages-view”。"><a href="#2-打开命令面板-快捷键-cmd-shift-p-输入“incompatible-packages-view”。" class="headerlink" title="2.打开命令面板(快捷键:cmd + shift + p), 输入“incompatible packages: view”。"></a>2.打开命令面板(快捷键:cmd + shift + p), 输入“incompatible packages: view”。</h2><h2 id="3-在下拉列表中选中live-server，并点击“Rebuild”按钮。"><a href="#3-在下拉列表中选中live-server，并点击“Rebuild”按钮。" class="headerlink" title="3.在下拉列表中选中live server，并点击“Rebuild”按钮。"></a>3.在下拉列表中选中live server，并点击“Rebuild”按钮。</h2><h2 id="4-确认启动后，将开启live-server服务。"><a href="#4-确认启动后，将开启live-server服务。" class="headerlink" title="4.确认启动后，将开启live server服务。"></a>4.确认启动后，将开启live server服务。</h2>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;在mac环境下，开启atom插件atom live server 服务，步骤如下：&lt;/p&gt;
&lt;h2 id=&quot;1-安装atom-live-server后重启atom。&quot;&gt;&lt;a href=&quot;#1-安装atom-live-server后重启atom。&quot; class=&quot;header
      
    
    </summary>
    
    
      <category term="工具" scheme="https://wllluoo.github.io/myblog/tags/%E5%B7%A5%E5%85%B7/"/>
    
  </entry>
  
</feed>
