redux与react-redux Store:Store是保存数据的地方,可以看成一个容器。整个应用只能有一个 Store。Redux 提供createStore这个函数,用来生成 Store。import { createStore } from 'redux';const store = createStore(fn);createStore函数接受一个函数作为参数,返回新生成的 Store 对象。State:S...
出行助手Vue项目中高德API的使用 本文章是出行助手项目使用高德API的一些经验,见程序代码及注释,详情请查看高德API高德地图初始化加载定位到当前城市(具体位置):设置一个div挂载高德地图:<div id="map" style="width:900px; height: 900px;border: 1px solid red"></div>引入高德API:<script type="te...
出行助手Vue项目中echarts的使用 引入:本项目搭建完成之后,根据官网的提示,在webpack中使用echarts,通过npm安装echarts:npm install echarts --save使用:echarts可以作为一个正常的vue组件使用:<template> <div class="echarts"> <div id="main" class="echarts-canv...
webCpmponent 传统的组件开发:代码由四部分构成:引入CSS组件样式部分<link rel="stylesheet" href="***.css">JS组件封装逻辑部分<script src="***.js"></script>HTML组件模板代码<div></div>JS组件创建脚本代码<script></scri...
高质量代码规范及架构思维 写出JQuery架构简单分析jquery通过调用入口模块,创建工厂,将功能模块的功能注入到jquery对象中,而功能模块通过多个模块通过extends继承,互不影响。jquery的模块分离、接口模块的设计正是值得学习的地方。// jQuery整体上被包裹在一个匿名函数中,这个匿名函数再作为另一个匿名函数的参数被传入.(function(window){ var ...
简单数据响应式原理(数据双向绑定) 什么是数据响应式即数据双向绑定,改变Model时,View自动更新。改变View时,Model也会自动更新。数据响应式原理在Vue2.x版本中,利用Object.defineProperty()重新定义对象获取属性值(get)和设置属性值的操作实现数据响应。在Vue3.0版本中,采用ES6的Proxy对象来实现。数据响应简单实现Object.defineProperty()实现数据...
TS进阶 类型别名:使用 type 创建为类型创建别名,常用于联合类型。type Name = string; //为string创建别名Nametype NameResolver = () => string; //TS中=>左边是参数,右边是返回值,所以类型是一个 返回字符串的函数,且该函数没有参数type NameOrResolver = Name | NameResolve...
TS高级语法 上篇简单介绍了TS及其类型定义。类型推断:如果没有明确的指定类型,TS会依照类型推论(Type Inference)的规则推断出一个类型:let myFavoriteNumber = 'seven'; //无错myFavoriteNumber = 7; //Type 'number' is not assignable to type 'string...
Vue/cli 2与3 写在正文之前: 查了许多教程,网上大多都是2.*之前版本的cli,而官网也说明了Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。因此我自己总结了一份。and新版的@vue/cli要求node版本在8.9以上,如未达到请更新node版本,这里我使用的是node10.15.3老版本vue-cli创建一个项目全局安装老版本的vue-cli:npm install --glo...
WebStorm的Git流程 写在正文之前: WebStorm被广大JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。在使用过一段时间的VSCode、SublimeText3之后,我也投身到了webstorm的怀抱。本文仅介绍webstrom中Git的使用规范。若需了解Git的基本操作,可查看Git入门笔记。...
Vue组件 定义组件的两种方式全局定义组件局部定义组件 <div id="demo"> <!--使用组件--> <my-component></my-component> </div>Vue.component("my-component",{ // 全局定义组件 template:`<div...
每日一题之闭包20190504 <script type="text/javascript"> var a=0,b=0; function A(a){ var A = function(b){alert(a + b++)} alert(a++); } A(1); A(2); </script>如果这样写,显然易见为1和2,因为整个运行中并没有运行var...
fetch(新一代ajax) 是基于的p基本使用:fetch(url ,{method:'GET'}).then(data => data);fetch(url ,{ method:'POST', headers : new Headers({ "Content-Type" : 'application/x-www-from-urlencoded' }), body : new URLSearchParm...
深入Promise对象及其封装源码实现 Promise的含义Promise是一个状态集,有三种状态,关系如下:pending(就绪状态) -----> resolved (成功状态)pending(就绪状态) -----> rejected (失败状态)其中初始为就绪状态,然后转为成功或失败态!2. 基本用法var p = new Promise(function(resolved,rejected...
深入class类 引言:JavaScript当中并没有构造函数的概念,只是我们为了方便区分,就人为的约定了方法名首字母大写的为构造函数。在ES6之前,如果写一个构造函数像下面这样:function Person1(name,age){ this.name = name; this.age = age; this.show = function(){ console.log(this.name,thi...
深入原理:块级作用域、解构赋值 块级作用域:特点: 不存在变量声明提升;作用域仅在所在的{}之内(称为暂时性死区);不允许重复声明;letlet i= 10;for(let i = 0;i<10;i++){ let i= 20;}// 本段代码并不会报错(不允许重复声明错误),因为是三个层级的i,注意for循环的()与{}属于两个层级// 即:let i = 10{ let i =0; {...
Promise解决node与mysql的异步问题 继上篇文章之后MySQL管理与node连接之后,进行密码登陆验证时,发现连接sql进行查询时可以查询的到,但是与业务进行整合时由于异步的原因,总是稍慢一步。调试了一天之后终于使用Promise解决了此问题。首先在项目导入mysql模块:npm install mysql接下来就是代码了:var mysql = require('mysql');let databaseConfig =...