Node、gulp、sass

目录

一、懒加载

1.定义

2.懒加载原理

3.加载条件

4.浏览器的javascript的作用?

二、Node.js

1.定义

2.为什么使用node.js作为后端服务器?(优势)

3.node的操作

4.模块化

5.模块的分类

6.nodejs模块的导入和导出:CommonJS

三、npm

1.npm常见命令

2.nodemon[自动重启工具]

四、gulp简介

1.定义

2.安装cnpm的命令

3.gulp的使用步骤

4.gulp的操作

5.傻瓜日期

6.fs文件读写模块

7.路由

五、SASS简介

1.定义

2.SASS安装


一、懒加载

    使用场景:瀑布流

1.定义

延迟加载:当页面需要加载大量图片时,优先加载可视窗口的图片

2.懒加载原理

    <img src="url地址">

    每个img都有src属性,当src属性发送请求时,就会下载数据,

    如果src属性开始没有url地址,该img标签遍不会发送请求,

    开始不要让所有的img标签都存储url,

    将url保存在一个自定义属性中,

    等img标签进入加载条件时,在将url赋值给src  

3.加载条件

    if (图片.top < 可视窗口的高度 + 滚动条的高度){

        oImg[i].src = oImg[i].data_url;

    }

4.浏览器的javascript的作用?

    (1)操作dom(也就是对dom的增删改,注册事件之类的事情)

    (2)发送AJAX请求/跨域

    (3)BOM交互:如给我们提供页面跳转,历史记录,控制台打印日志

    (4)ecmascript(js的核心语言:如用来定义变量、函数等)

 js只能实现浏览器页面的交互行为,存在缺陷

    1.不能对文件进行读写

    2.也不能直接操作windows api

二、Node.js

1.定义

就是一个javascript的运行环境(平台),他不是一门语言,也不是javascript的框架。

可以用来开发服务端应用程序,web系统。其特点是体积小,快速,高性能

简单的说:Node.js就是运行在服务端的JavaScript。

    Node.js 是一个开源和跨平台的 JavaScript 运行环境.

    Node.js = js的运行环境(谷歌v8js引擎) + 巨量的新API

    js的运行环境(谷歌v8js引擎)作用,

    以前js必须运行在浏览器,因为浏览器中有js引擎,而node.js将js引擎抽离出了浏览器,

    所以js现在可以运行在服务器端

    巨量的新API作用,可以做以前干不了的事,(对文件进行读写,可以直接操作windows api,可以搭建服务器,写后端代码)

2.为什么使用node.js作为后端服务器?(优势)

    1.前端人员不必在重新学习一门后端语言

    2.服务器运行效率极高

3.node的操作

双击exe安装node->证明node安装成功->打开cmd(window+r)

node -v如果显示版本号,则安装成功

    注意事项:路径的切换,必须保证编译的文件路径和用户路径相同

    在js文件所在目录处,键入cmd

运行js文件的命令:node 文件名

4.模块化

    没有html文件了,那么js文件和js文件之间怎么导入和导出.

    必须研究js文件如何导入导出。

    nodejs淡化了类的概念,通过模块替换了类.

    模块:本质其实就是js文件,通过模块模拟类.

    可以通过模块定义模块对象

5.模块的分类

    1.系统内置模块:http,fs

    2.自定义模块:你写的js文件

    3.第三方模块:通过npm下载的模块

6.nodejs模块的导入和导出:CommonJS

    模块的导入:

    const 模块对象 = require(模块文件);

    模块的导出:

方法1:

    exports.属性1 = 值1;

    exports.属性2 = 值2;

方法2:

    module.exports = {

        属性1:值1,

        属性2:值2,

        ...

    }

注意事项:

    1.被导入的模块的属性或方法,必须对外暴露,才能直接使用

    2.平级目录文件导入,也得加./

    3.CommonJS规则导入时,可以省略js后缀

    4.node_modules文件夹包含的文件夹,可以直接通过文件夹名,导入里面的index.js模块

公有和私有的问题:

    在类的设计中,有些属性往往是不愿被外部可以直接操作的,这种属性应设置为私有。

三、npm

    node package manger 包管理工具

    包:出口模块

    npm可以理解为是一个软件商城,

    通过npm可以下载各种各样的模块。

1.npm常见命令

    npm -v:检测npm是否安装成功

    npm install 模块名称;[模块的安装]

    install可以改为i

    通常凡是需要使用到npm下载的项目,请在下载模块前,创建json文件

    npm init[在项目的根目录下创建package.json配置文件]

    往往在项目拷贝的过程中,是不会拷贝第三方模块的.

    当创建配置文件后,可以直接通过npm i的方式下载所有依赖关系的第三方模块

    npm uninstall moudleName[卸载模块]

2.nodemon[自动重启工具]

    自动重启工具,可以监听某一个文件,当实现保存时,自动执行该文件

npm install nodemon -g

四、gulp简介

    程序员的作用:不是用来解决低级且重复性问题的。

    简单重复性的工作咱们用工具代替.

1.定义

gulp是一个前端的自动化构建工具,可以对很多类型的文件实现压缩(去空格回车),合并,拷贝,格式化,测试

2.安装cnpm的命令

npm i 模块 -g 全局

npm install cnpm --registry=https://registry.npm.taobao.org  -g

    没有配置全局环境变量的话,该模块只能在自己的路径下使用,

    当添加了g(全局环境变量后),在电脑的任意位置都可以使用该模块

    *此电脑->属性->高级系统设置->高级->环境变量->系统变量->Path*

npm i 模块 -D   将模块绑定在[开发依赖]

npm i 模块 -S   将模块绑定在[生产依赖]

3.gulp的使用步骤

    1.安装全局gulp,这一步是在安装gulp的软件(电脑是需要安装一次)

cnpm i gulp -g

    每个项目使用gulp时都得执行一遍

    2.创建配置文件paakage.json

cnpm init

    3.安装gulp模块

cnpm i gulp -S

    4.在项目跟目下,创建名为gulpfile.js文件

4.gulp的操作

    原生的gulp(不考虑插件的情况下,只能实现文件的拷贝)

    task

    src

    dest

5.傻瓜日期

const sd = require('silly-datetime');

console.log(sd.format(new Date(),"YYYY-MM-DD,hh"));

6.fs文件读写模块

[第一步]

const fs = require('fs');

[读]

//同步的读

**let str = fs.readFileSync("文件路径");**

console.log(str.toString());//将二进制转为明文

//异步的读

**fs.readFile("路径",回调函数(err,读取的内容){})**

fs.readFile("2.fs.js",(err,data)=>{

    if(err){

        console.log("文件读取失败");

    }else{

        console.log(data.toString());

    }

    //异常处理:*try{..}catch{...}*

    try{//条件成功时执行的代码

        console.log(data.toString());

    }catch(err){//抓取异常对象,异常对象包含着该种异常出现的原因

        console.log(err);

    }

});

[写]

//异步的写

**fs.writeFile("路径","写入内容",[{flag:"w|a"}],回调函数);**

*{flag:"w"} 删除源文件,创建新文件*

//当路径不存在时,创建新文件

fs.writeFile("111.txt","明天星期五,啊哈哈哈哈",{flag:"w"},function(){

    console.log("写入完毕");

});

//追加==>*{flag:"w"}*

fs.writeFile("123.txt","后天星期六,哇哈哈哈哈哈哈哈",{flag:"a"},function(){

    console.log("写入完毕");

});

//创建文件夹==>*fs.mkdir("文件夹名称",回调函数)*

fs.mkdir("heihei",()=>{});

//删除文件夹==>*fs.rmdir("文件夹名称",回调函数)*

fs.rmdir("heihei",()=>{});

//删除文件==>*fs.unlink("文件夹名称",回调函数)*

fs.unlink("111.txt",()=>{});

7.路由

用户输入不同的路由参数跳转至不同的页面

**http.createServer((req,res)=>{ res.writeHead(200,{"Content-type":"text/html;charset=utf-8"});}**

//url:ip+端口+路由参数+请求参数

const http = require('http');

const fs = require('fs');

http.createServer((req,res)=>{

    res.writeHead(200,{"Content-type":"text/html;charset=utf-8"});

    // console.log(req.url);

路由模块(/3种情况)

    if(req.url == '/login'){

        fs.readFile("login.html",(err,data)=>{

            if(err){

                console.log("读取失败");

            }else{

                res.end(data);

            }

        });

    }else if(req.url == '/reg'){

        res.end("注册页面");

    }else if(req.url == '/admin'){

        res.end("后台页面");

    }

}).listen(8888);

五、SASS简介

CSS不是一个编程语言,可以用它来开发网页样式,但是没有办法用它进行编程。SASS的出现,让CSS实现了通过代码编程来实现的方式。

1.定义

SASS是一种CSS开发工具,提供了许多便利的写法,让CSS的处理实现了可编程处理。

SASS扩展了CSS3,增加了规则、变量、混入、选择器、继承等等特性,可以生成风格良好的CSS样式表文件,易于组织和维护。

2.SASS安装

sass基于Ruby语言开发而成,因此安装sass前需要安装Ruby。(注:mac下自带Ruby无需在安装Ruby!)

window下安装SASS首先需要安装Ruby,先从官网下载Ruby并安装。安装过程中请注意勾选Add Ruby executables to your PATH添加到系统环境变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值