
发表日期: 2021-05-07 09:20:28 浏览次数:112
温县网站优化【温县开通400电话】温县网站搭建、温县微信公众号推文外包、温县开通京东拼多多设计、温县淘宝装修
温县,隶属于河南省焦作市,地处豫北平原西部,南滨黄河,北依太行,截至2017年,全县总面积481.3平方千米,辖7个乡镇、4个街道,262个行政村,总人口46.8万,县政府驻温泉街道。 [1]
古时因境内有温泉而得名,在夏时被称温国,明清隶属怀庆府辖。温县诞生了思想家卜商、三国著名政治家军事家司马懿、北宋画家郭熙等历史名人,是太极拳发源地,温、苏等姓氏起源地。全国闻名的“武术之乡” [2] 、“怀药之乡”和优质小麦种子基地,中国十大休闲旅游县。 [1] [3]
2018年,温县完成地区生产总值296.61亿元,城镇居民人均可支配收入达到27876元,农村居民人均可支配收入达到16258元。 [4-5]

nodejs使用的规范
文件即模块,通过指定的方式进行导出
/表示通过绝对路径来加载模块,./表示通过相对路径来加载模块
模块加载会有缓存存在,存放在require.cache中,并且缓存是根据绝对路径来识别的
CommonJS是同步加载的,加载完成之后再进行下面的操作
运行时加载,CommonJS就是对象,在输入时先加载整个模块,生成一个对象,然后在从这个对象上面读取方法
CommonJS输出的是值拷贝,一旦输出一个值,模块内部变化不会影响这个值
// a.jsfunction test1() {console.log('test 1')}function test2() {console.log('test 2')}// 通过module.exports导出模块module.exports = {test1,test2}// 或者module.exports = test1// 通过exports导出模块exports.fn = test1// b.js// 通过require来加载模块// 核心模块加载const http = require('http')// 加载module.exports导出的模块const { test1, test2 } = require('./a')test1() // test 1// 加载exports导出的模块const test = require('./a.js')test.fn() // test 1采用异步方式加载模块,模块加载不影响后面的语句运行
存在依赖关系的模块,会在依赖的模块的回调函数中执行
requirejs实现了AMD规范的模块化
AMD推崇依赖前置,提前执行
// 模块定义/* id: 可选,定义模块表示 dependencies: 当前模块依赖模块列表 factory: 工厂方法,表示模块初始化需要执行的函数或者对象*/define(id?, dependencies, factory)// 模块加载/* dependencies: 需要加载的模块文件 fn: 模块加载完成的回调*/require([dependencies], fn)
// 定义// a.jsdefine(['jquery'], function($) {function test() {console.log($('#app'))}return {test}})// 加载// b.jsrequire(['a.js'], function(t) {t.test()})通用模块定义
异步加载模块
依赖就近,延迟执行
seajs实现了CMD规范的模块化
// AMD实现define(['a', 'b', 'c'], function(a, b, c) {// 在执行到回调函数中时,实际模块a,b,c已经都加载完成a.fn1()b.fn1()c.fn1()})// CMD实现define(function(require, exports, module) {const a = require('./a')a.fn1()if (false) {const b = require('./b')b.fn1()}})通过es6的语言标准层面上实现模块功能,旨在成为浏览器与服务端通用的模块化解决方案
编译时加载,ES6模块不是对象,而是通过export命令显式指定输出代码。import
是采用静态命令的形式,可以加载指定的某个输出值,而不是加载整个模块
通过export来导出接口,通过import引入接口
js引擎对脚本静态分析时,遇到模块加载命令import,会输出一个只读的引用。等到脚本真正执行时,再取实际导出的值
// 定义模块// a.jsfunction test1() {console.log('test 1')}export {test1}// b.jsfunction test2() {console.log('test 2')}function test3() {console.log('test 3')}export default {test2,test3}// 引入模块// c.jsimport { test1 } from './a'import math from './b'test1()math.test2()// a.jsfunction func() {console.log('func a')}function bar() {console.log('bar')}// b.jsfunction func() {console.log('func b')}import React from 'react'// 在import时使用as来区分别名import { func as fu, bar } from './a'import { func } from './a'export class MyClass extends React.Component {...}// 通过export default指定默认输出// a.jsexport default function() {console.log('test 1')}// b.jsexport function test2() {console.log('test 2')}// c.jsimport Test1 from './a'import { Test2 } from '/b'// 浏览器中直接使用,通过type='module'来识别es6模块// a.jsconst name = 'xcc'export default xcc// index.html<script type="module">import name from './a.js'console.log(name) // xcc</script>
// CommonJS加载// 基本数据类型导出后不可修改,为复杂数据类型时,实际是一个浅拷贝,可以进行修改// a.jslet name = 'xcc'let obj = { name: 'xcc', age: 20 }function setName() {name = 'xcc1'}function setName1() {obj.name = 'xcc2'}module.exports = {name,info: obj,setName,setName1}// b.jslet { name, info, setName, setName1 } = require('./a.js')setName()setName1()console.log(name, info) // xcc { name: 'xcc2', age: 20 }// ES Module// 导出后还可以随便修改// c.jslet name = 'xcc'let obj = { name: 'xcc', age: 20 }function setName() {name = 'xcc1'}function setName1() {obj.name = 'xcc2'}export {name,obj,setName,setName1}// index.html<script type="module">import { name, obj, setName, setName1 } from './c.js'setName()setName1()console.log(name, obj) // xcc1 {name: "xcc2", age: 20}</script>
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878