• 2018 07-19
    Windows远程桌面连接 出现身份错误 要求的函数不受支持
    Windows远程桌面连接 出现身份错误 要求的函数不受支持

    来源:

    时间:2018 07-19

    点击:7

    解决方案

    1. win + R
    2. 输入 gpedit.msc
    3. 打开本地组策略编辑器
    4. 点击计算机配置
    5. 管理模板
    6. 系统
    7. 凭据分配
    8. 选择 加密 Oracle修正
    9. 编辑 加密 Oracle修正
    10. 将保护级别从 已缓解 修改为 易受攻击
  • 2018 07-13
    第十三节 实战demo
    第十三节 实战demo

    来源:米修在线工作室

    时间:2018 07-13

    点击:10

    这里先给出要实现的效果图,然后配合代码来学习一下:

    显然,需要给一张图片,然后给一个进度情况,最后给出控制按钮,其中一个button是使劲敲,另一个是重新开始。完整的html结构如下,具体绑定的属性以及事件在下面给出解释:


    接下来设置下相关样式,给出代码,样式设置很简单,就不加介绍了。


    最后给出app.js:

    可以看到app.js中设置一个health表示进度,点击使劲敲的按钮让进度条长度变短,每次-=10;我们的图片在进度条为0的时候要更换图片,需要绑定一个属性ended,首先设置false,然后点击重新开始设置它的值以及进度条的长度。当然当进度条长度为0时要更改ended的值。最后呢,就是当游戏结束需要重新开始时,使劲敲的按钮是不应该存在的,所以使用v-show来控制它的显示。

    主要内容就这些,使用我们学习的知识点完成了这个小游戏。下节来学习一下如何实例化多个Vue对象。

  • 2018 07-13
    ES6面试题-计算数组中除去最大/小值之外数值的总和
    ES6面试题-计算数组中除去最大/小值之外数值的总和

    来源:米修在线工作室

    时间:2018 07-13

    点击:10

    段位: 

    黄金

    需求: 

    计算数组中除去最小值之外数值的总和, 以及除去最大值之外数值的总和

    const ary = [1, 5, 2, 4];

    举例: 

    除去最大值 1 + 2 + 4 = 7

    除去最小值 5 + 4 + 2 = 11

    实现: 

    function findMinMax(array) {

    // 获取数组中最小值

    let minNumber = Math.min.apply(null, array);

    // 获取数组中最大值

    let maxNumber = Math.max.apply(null, array);

    // 计算数组所有值总和

    let arraySum = array.reduce((acc, item) => acc + item);

    // 获得: 除去最小值之外数值的总和

    let maxSum = arraySum - minNumber;

    // 获得: 除去最大值之外数值的总和

    let minSum = arraySum - maxNumber;

    // 返回结果

    return JSON.stringify({ minSum: minSum, maxSum: maxSum });

    }

    // 调用方法

    alert(findMinMax(ary));

    视频: 

  • 2018 07-13
    第十二节 指令v-for
    第十二节 指令v-for

    来源:米修在线工作室

    时间:2018 07-13

    点击:10

    我们用代码来展示一下如何使用v-for。既然是for循环就要遍历数组,设置的属性如下:

    数组,我们是可以通过下标的方式取出来的,即:

    但是这种方法是很笨拙的,而且如果数组足够大,难道要一个一个通过下标写出来吗?接下来使用v-for遍历一下以上的数组characters和users。v-for后面的值中in前面的是自定义的名字,in之后的是我们在app.js中设置的数组。如果像user遍历出来是对象的话,可以通过.的形式去获取name和age。

    注意:  所有遍历都请加上key, 而且key的值为遍历出来的index

     

    •     {{}}

       

    所有的v-for都要这么写, 就不会报错了! 至于key的作用, 后面在给大家讲解!

    遍历数组不是只能用ul li,div也是可以的,我们看一下:

    检查元素发现有很多个div,会把所有容器都创建一遍,Vue针对这个有所优化,可以在官网中找到“列表渲染”的template,它用来解决多个元素的渲染问题。那么把div换成template来测试一下,发现效果一样,但是没有那么多的div容器,只是渲染了里面的标签,template并不会渲染出来。

    For循环遍历数组大家都熟知,那么如果想要遍历对象呢?不使用“对象.属性”的方式,就需要先遍历数组,然后对单个对象进行遍历,拿到key和value值。


    通过学习,我们知道了v-for不光可以遍历数组,还可以遍历对象。下节我们通过一个实战demo来练习一下我们之前所学的内容。

  • 2018 07-12
    ES6面试题-如何一行代码将对象转为数组(青铜段位)
    ES6面试题-如何一行代码将对象转为数组(青铜段位)

    来源:米修在线工作室

    时间:2018 07-12

    点击:12

    痛点: 

    ES6是目前前端开发面试过程中问的最为频繁的, 常常有一些题, 让你感觉很陌生, 我们找出一部分常见的面试题, 为大家讲解!

    //  倔强青铜段位 题

     

    let x = {

        a: 1,

        b: 2

    };

    上方代码是我们常见的对象, 其中包含a和b两个属性, 并且属性都对应的数值.

    问1:

    我们如何使用一行代码将对象转为数组

    答1:

    const xArr = Object.entries(x);

    Object.entries方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值对数组

    问2: 

    如何将对象中的值,存储到数组中, 得到的结果是[1,2]

    答2:

    const xArr = [];

     

    for (let i in x) {

        xArr.push(x[i]);

    }

     

    console.log(xArr);

    创建新的数组(用于存储), 遍历对象, 将对象中每个属性对应的值,push到数组中

    视频: 

    大家也可以通过视频来观看具体实现的步骤, 在这里需要跟大家强调一下, 视频的总大小在2M左右(相当于你给别人发2张图片), 所以大家可以参考是否需要流量观看!

  • 2018 07-12
    vscode插件-liveserver实现代码实时更新(去除手动刷新浏览器)
    vscode插件-liveserver实现代码实时更新(去除手动刷新浏览器)

    来源:米修在线工作室

    时间:2018 07-12

    点击:12

    痛点: 

    在开发过程中, 假设我们写的项目并没有脚手架的前后端实时更新功能, 那么我们所写的代码, 就需要手动刷新浏览器, 来查看最新的效果. 这个频繁的操作,也会耗费我们很多的时间, 所以我们可以使用vscode为我们提供的插件, 来解决这个问题. 

    插件名字: liveserver



    点击图像最后一个, 然后搜索liveserver, 安装 -> 重新加载 -> 在html的代码中实现右键open with live-server, 即可启动live-server服务器, 此时就实现了代码实时更新的功能了. 具体操作大家可以看下方视频!
    视频: 
    大家也可以通过视频来观看具体实现的步骤, 在这里需要跟大家强调一下, 视频的总大小在10M左右(相当于你给别人发5张图片), 所以大家可以参考是否需要流量观看!

     

  • 2018 07-11
    第十节 动态绑定CSS样式
    第十节 动态绑定CSS样式

    来源:米修在线工作室

    时间:2018 07-11

    点击:15

    动态绑定类名使用v-bind:class=“”,后面对应的值是一个对象,最终的值是true或false。下面先来看一下如何动态绑定样式?动态绑定一定是根据某个属性动态地变化展示对应的样式。在这里对style的具体样式设置就不多加叙述了,贴出代码:

    那么先来一个点击按钮改变颜色的实例:

    在数据中 app.js

    上面代码中绑定了一个名叫changColor的类,值是data中的changeColor,根据它的值显示对应的内容,还绑定了一个点击事件对changeColor值取反,希望点击之后改变它的真假值从而改变颜色的效果。

    检查元素可以发现,初始值为false时没有添加任何类,所以颜色为红色,而点击之后修改为true,添加了changeColor类,所以颜色改变为绿色。 

    再来做个变换,点击按钮时更改当前元素的样式,绑定一个compClasses的类,使用上节的计算属性Computed把整个对象返回来。调用的是一个计算属性,下面来实现一下。

    在按钮上绑定点击事件,对属性的值进行取反。如果这里有更多的内容,就可以在app.js中computed中对象返回更多的属性。

    检查元素可以发现,点击相应按钮就添加了相应的类,从而改变了它的样式。


    这就是如何动态的绑定class,下节内容来学习Vue提供的指令v-if。

  • 2018 07-11
    第九节 计算属性Computed
    第九节 计算属性Computed

    来源:米修在线工作室

    时间:2018 07-11

    点击:11

    先给出基本代码结构,然后具体看一下:

    使用methods:

    效果图:

    经测试会发现无论点击哪个按钮,addToA()和addToB()两个方法都会执行。也就是methods里面的方法,一旦被触发就会执行里面全部的方法,这样就会耗费性能。那如果使用Computed呢?

    使用Computed:

    效果:

    可以发现,只有点击对应的按钮才会触发对应的方法,这样就会有所优化。而且computed是一个属性,我们在使用时不能当做方法,所以要去掉括号。

    既然Computed比较好,是不是直接取代methods了。并不是这样的,计算属性Computed有它的应用场景,那就是只有耗时以及有大量搜索时才会使用计算属性来减少项目支出,从而优化项目。

    这节主要介绍了Computed,而且区分了它和methods。下节内容讲解一下动态绑定CSS样式。

  • 2018 07-09
     VS code 显示中文异常解决办法
    VS code 显示中文异常解决办法

    来源:米修在线工作室

    时间:2018 07-09

    点击:22

    设置文件打开位置:文件--.>首选项-->设置-->用户设置。
    在设置文件中加入:"files.autoGuessEncoding":true; //自动识别字符编码。
     

    VS code注释快捷键

    注释:        先CTRL+K,然后CTRL+C
    取消注释: 先CTRL+K,然后CTRL+U

  • 2018 07-07
    第八节 双向数据绑定
    第八节 双向数据绑定

    来源:米修在线工作室

    时间:2018 07-07

    点击:25

    摘要:本节主要来讲解Vue中的双向数据绑定。双向数据绑定呢,一定是和input、textarea、select这些标签相关的,因为双向涉及到输入和输出两个方面。实现在input中输入name/age就希望该内容展示在对应的span标签中的效果,那么首先需要设置name和age属性。如果还希望input和span内容同步变化,就需要把input的内容获取后赋值给name或者age。

    在这里需要用到ref,ref是用来给input标签标记的,标记后通过this.$refs.name.value来获取到input的内容,再将其赋值给this.name,这样就实现了双向绑定的一个效果。

    效果图:

    上面是一种方式,下面来介绍另一种方式。在Vue中提供了指令v-model来实现双向数据绑定,后面的值绑定输出的属性。这里不需要调用方法,修改代码后如下,经测试也可以达到效果。

    介绍下v-model的工作流程:首先绑定app.js中的name属性到input标签上,然后就是修改input内容也会修改相应属性的值,这样就达到了双向绑定。

    以上就是本节的内容,下节来介绍一个重要的属性Computed。

  • 2018 07-06
    一分钟教学:快速生成React代码块(vscode)
    一分钟教学:快速生成React代码块(vscode)

    来源:米修在线微信

    时间:2018 07-06

    点击:17

    痛点: 

    在开发过程中, 我们经常会写很多结构性的东西, 虽然我们熟记于心, 写出来也就是几十秒的事, 但由于每个文件中都需要写, 就会耗费我们比较多的时间, 最主要的是没有任何意义. 

    举例: React中的状态组件结构

    import React from 'react'

    export default () => {

        return (    

        )
    }

    对于React开发人员, 这是在熟悉不过的东西, 而且每个文件都要写. 所以我们需要解决这个问题

    解决: 

    我们可以在vscode中下载插件:  ES7 React/Redux/GraphQL/React-Native

    这个插件可以帮助我们快速的生成代码块. 

    我们可以在组件文件中输入 rcc就会生成以下代码

    import React, { Component } from 'react'

    export default class TestPlugin extends Component {

        render() {

            return (  

            )

        }

    }

    rcc表示: react class component 有状态组件
    rfc表示:  react function component 无状态组件

    视频: 

    大家也可以通过视频来观看具体实现的步骤, 在这里需要跟大家强调一下, 视频的总大小在10M左右(相当于你给别人发5张图片), 所以大家可以参考是否需要流量观看!

  • 2018 07-05
    一分钟教学: 保存后自动格式化代码(vscode)
    一分钟教学: 保存后自动格式化代码(vscode)

    来源:米修在线微信

    时间:2018 07-05

    点击:38

    痛点: 

    写项目的时候, 我们经常会拷贝一些代码, 每当拷贝过来都需要重新调整, 如果可以实现保存自动调整代码, 将会给我们带来很多的便利!

    解决: 

    其实对于vscode来说, 实现这一点很容易. 我们只需要修改两个属性即可. 

    "editor.formatOnType": true,

    "editor.formatOnSave": true

    大家需要将上方的代码, 拷贝vscode的设置中. 

    具体的操作流程是: 

    打开设置-> 搜索emmet.include -> 找到上方代码拷贝 -> 粘贴到右侧工作区

    视频: 

    大家也可以通过视频来观看具体实现的步骤, 在这里需要跟大家强调一下, 视频的总大小在10M左右(相当于你给别人发5张图片), 所以大家可以参考是否需要流量观看!

  • 2018 07-05
    一分钟教学: React-如何在jsx中自动补全标签(vscode)
    一分钟教学: React-如何在jsx中自动补全标签(vscode)

    来源:米修在线微信

    时间:2018 07-05

    点击:16

    痛点: 

    React库最近的增长趋势很明显, 很多朋友都在选择学习, 很多公司也在选择使用React栈. 

    但在使用React库写代码的时候, 有一个很让人苦恼的问题, 就是标签在jsx语法中不能自动补全(vscode)

    那我们经常会想到下载对应的插件来解决这个问题, 可以我们尝试了多个插件之后, 还是解决不了这个问题.  所以小编就深入的对这个东西进行了研究. 发现在vscode的设置中就可以配置. 

    配置的具体代码是: 

    "emmet.includeLanguages": {

        "javascript": "javascriptreact"

     }

    具体的操作流程是: 

    打开设置-> 搜索emmet.include -> 找到上方代码拷贝 -> 粘贴到右侧工作区

    也可以通过视频了解具体的配置流程

  • 2018 07-05
    ES6核心特性(一)
    ES6核心特性(一)

    来源:米修在线微信

    时间:2018 07-05

    点击:16

    一、前言

    ES6 虽提供了许多新特性,但我们实际工作中用到频率较高并不多,根据二八法则,我们应该用百分之八十的精力和时间,好好专研这百分之二十核心特性,将会收到事半功倍的奇效。接下来将会三篇文章着重介绍这些核心特性。

    二、开发环境配置

    这部分着重介绍:babel 编译ES6语法,如何用webpack和rollup实现模块化。

    1.babel

    为啥需要babel?

    ES6 提供了许多新特性,但并不是所有的浏览器都能够完美支持。下图是各个浏览器对ES6兼容性一览表(以export为例)


    由上图可知,有些浏览器对于ES6并不是很友好,针对 ES6 的兼容性问题,很多团队为此开发出了多种语法解析转换工具(比如babel,jsx,traceur 等),可以把我们写的 ES6 语法转换成 ES5,相当于在 ES6 和浏览器之间做了一个翻译官。其中Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。
    如何配置babel?

    ·首先要先安装node.js,运行npm init,然后会生成package.json文件 ·npm install --save-dev babel-core babel-preset-es2015
    babel-preset-latest ·创建并配置.babelrc文件//存放在项目的根目录下,与node_modules同级 ·npm install -g babel-cli ·babel-version

    Babel的配置文件是.babelrc,存放在项目的根目录下。该文件用来设置转码规则和插件,具体内容如下:  

    //.babelrc文件 {    
       "presets": [
           "es2015","latest"
        ],
       "plugins": [] }

    验证配置是否成功 

    ·创建./src/index.js ·内容:
    [1,2,3].map(item=>item+1); ·运行babel./src/index.js

    运行后得到以下部分,说明已经成功配置了babel  

    "use strict"; [1, 2, 3].map(function (item) {
         return item + 1; });

    2.webpack

    为啥要使用WebPack?

    现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包,模快化工具就应运而生了,其中webpack 功能强大深受人们喜爱。Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。

    如何配置webpack?  

    ·npm install webpack babel-loader --save-dev ·创建并配置webpack.config.js//webpack.config.js文件与package.json同级 ·配置 package.json中的scripts ·运行 npm start  

    //配置webpack.config.js针对.js结尾的文件除了node_modules都用babel解析 module.exports = {    entry: './src/index.js',    output: {        path: __dirname,        filename: './build/bundle.js'    },    module: {        rules: [{            
               test: /.js?$/,            exclude: /(node_modules)/,            loader: 'babel-loader'        }]    } }
     

    //配置 package.json中的scripts
    "scripts": {
         "start": "webpack",
         "test": "echo "Error: no test specified" && exit 1"  }

    3.rollup

    Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序。通过它可以让你的 bundle 最小化,有效减少文件请求大小,与webpack不同的是,rollup功能单一,但没有冗余代码。既然这两者各有千秋,那我们应该如何选择?对于打包一个项目的整个应用的话,webpack更适合,对于类库的打包,使用 Rollup效率更高。

    如何配置rollup? 

    ·npm init ·npm i rollup rollup-plugin-node-resolve
    rollup-plugin-babel babel-plugin-external-helpers
    babel-core babel-preset-latest  --save-dev ·配置.babelrc//与src同级 ·配置rollup.config.js//与src同级 ·修改package.json的scripts ·运行npm start
     

    // .babelrc文件中 {    "presets": [        ["latest", {
               "es2015": {
                   "modules": false            }        }]    ],    
      "plugins": [
          "external-helpers",
          "babel-plugin-transform-regenerator"
      ] }
     

    // 配置rollup.config.js import babel from 'rollup-plugin-babel'
    import resolve from 'rollup-plugin-node-resolve'

    export default {    entry: 'src/index.js',    format: 'umd',    plugins: [        resolve(),        babel({            exclude: 'node_modules/**'        })    ],    dest: 'build/bundle.js'
    }
     

    // 修改package.json的scripts
    "scripts": {
    "start": "rollup -c rollup.config.js" }

    三、块级作用域

    ES5 只有全局作用域和函数作用域(例如,我们必须将代码包在函数内来限制作用域),这导致很多问题:

    情况1:内层变量覆盖外层变量 

    var tmp = new Date();function f() {  console.log(tmp); //undefined  if (false) {      var tmp = "hello world";  } }

    情况2:变量泄露,成为全局变量 

    var s = 'hello';
    for (var i = 0; i < s.length; i++) {  console.log(s[i]); } console.log(i); // 5

    ES6 提供 let 和 const 来代替 var 声明变量,新的声明方式支持用大括号表示的块级作用域,这会带来一些好处:

    1.不再需要立即执行的函数表达式(IIFE)

    在 ES5 中,我们需要构造一个立即执行的函数表达式去保证我们不污染全局作用域。在 ES6中, 我们可以使用更简单的大括号({}),然后使用 const 或者 let 代替 var 来达到同样的效果。

    2.循环体中的闭包不再有问题

    在 ES5 中,如果循环体内有产生一个闭包,访问闭包外的变量,会产生问题。在 ES6,你可以使用 “let” 来避免问题。

    3.防止重复声明变量

    ES6 不允许在同一个作用域内用 let 或 const 重复声明同名变量。这对于防止在不同的 js 库中存在重复声明的函数表达式十分有帮助。

    四、Class 和传统构造函数有何区别

    从概念上讲,在 ES6 之前的 JS 中并没有和其他面向对象语言那样的“类”的概念。长时间里,人们把使用 new 关键字通过函数(也叫构造器)构造对象当做“类”来使用。 由于 JS 不支持原生的类,而只是通过原型来模拟,各种模拟类的方式相对于传统的面向对象方式来说非常混乱,尤其是处理当子类继承父类、子类要调用父类的方法等等需求时。 ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。但是类只是基于原型的面向对象模式的语法糖

    对比在传统构造函数和 ES6 中分别如何实现类: 

    //传统构造函数
    function MathHandle(x,y){  this.x=x;  this.y=y; } MathHandle.prototype.add =function(){  
       return this.x+this.y; }; var m=new MathHandle(1,2); console.log(m.add())
     

    //class语法 class MathHandle { constructor(x,y){    this.x=x;    this.y=y; }
    add(){  
       return this.x+this.y; } } const m=new MathHandle(1,2); console.log(m.add())

    这两者有什么联系?其实这两者本质是一样的,只不过是语法糖写法上有区别。所谓语法糖是指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。比如这里class语法糖让程序更加简洁,有更高的可读性。 

    typeof MathHandle
    // "function"MathHandle===MathHandle.prototype.constructor
    // true

    对比在传统构造函数和 ES6 中分别如何实现继承: 

    // 传统构造函数继承
    function Animal() {    this.eat = function () {        alert('Animal eat')    } }
    function Dog() {    this.bark = function () {        alert('Dog bark')    } } Dog.prototype = new Animal()// 绑定原型,实现继承 var hashiqi = new Dog() hashiqi.bark()//Dog bark hashiqi.eat()//Animal eat
     

    //ES6继承 class Animal {    constructor(name) {        this.name = name    }    
       eat() {        alert(this.name + ' eat')    } } class Dog extends Animal {    constructor(name) {
           // 有extend就必须要有super,
           // 它代表父类的构造函数,即Animal中的constructor        super(name)        this.name = name    }  
       
       say() {        alert(this.name + ' say')    } } const dog = new Dog('哈士奇') dog.say()//哈士奇 say dog.eat()//哈士奇 eat

    Class之间可以通过extends关键字实现继承,这比ES5的通过修改原型链实现继承,要清晰和方便很多。

    Class 和传统构造函数有何区别

    • Class 在语法上更加贴合面向对象的写法

    • Class 实现继承更加易读、易理解,对初学者更加友好

    • 本质还是语法糖,使用prototype

    五、Promise的基本使用和原理

    Promise 是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理和更强大。

    ES6中的promise的出现给我们很好的解决了回调地狱的问题,所谓的回调地狱是指当太多的异步步骤需要一步一步执行,或者一个函数里有太多的异步操作,这时候就会产生大量嵌套的回调,使代码嵌套太深而难以阅读和维护。ES6认识到了这点问题,现在promise的使用,完美解决了这个问题。

    Promise原理

    promise 对象初始化状态为 pending ;

    当调用resolve(成功),会由pending => fulfilled ;

    当调用reject(失败),会由pending => rejected

    具体流程见下图:


    Promise的使用流程

    1. new Promise一个实例,而且要 return

    2. new Promise 时要传入函数,函数有resolve reject 两个参数

    3. 成功时执行 resolve,失败时执行reject

    4. then 监听结果 

    function loadImg(src){   const promise=new Promise(function(resolve,reject){     var img=document.createElement('img')     img.onload=function(){        resolve(img)     }     img.onerror=function(){        reject()     }     img.src=src   })  
       return promise//返回一个promise实例 } var src="http://www.imooc.com/static/img/index/logo_new.png"
    var result=loadImg(src)
    result.then(function(img){    console.log(img.width)//resolved(成功)时候的回调函数 },
    function(){    console.log(“failed“)//rejected(失败)时候的回调函数 })
    result.then(function(img){    console.log(img.height) })

    promise会让代码变得更容易维护,像写同步代码一样写异步代码,同时业务逻辑也更易懂。

    六、ES6模块化

    ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,旨在成为浏览器和服务器通用的模块解决方案。其模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。 

    /** 定义模块 math.js **/ var basicNum = 0; var add = function (a, b) {    
       return a + b; }
    export { basicNum, add }; /** 引用模块 **/ import { basicNum, add } from './math';

    function test(ele) {    ele.textContent = add(99 + basicNum); }

    如上例所示,使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。为了给用户提供方便,让他们不用阅读文档就能加载模块,就要用到export default命令,为模块指定默认输出。 

    // export-default.js
    export default function () {  console.log('foo'); }

    上面代码是一个模块文件export-default.js,它的默认输出是一个函数。其他模块加载该模块时,import命令可以为该匿名函数指定任意名字。 

    // import-default.js import customName from './export-default'; customName(); // 'foo'

    上面代码的import命令,可以用任意名称指向export-default.js输出的方法,这时就不需要知道原模块输出的函数名。需要注意的是,这时import命令后面,不使用大括号。

    未完待续 To be continued...

  • 2018 07-05
    VueJS中key的使用
    VueJS中key的使用

    来源:米修在线微信

    时间:2018 07-05

    点击:13

    点击标题详细信息查看视频播放教程3M

  • 2018 07-03
    Vue2.x-安装指定的脚手架版本
    Vue2.x-安装指定的脚手架版本

    来源:米修在线微信

    时间:2018 07-03

    点击:17

    点击标题详细信息查看视频播放教程3M

站内搜索

更多...

关于

    暂无信息