前言 最近公司在开发OTA微信小程序,一些页面的详情内容是HTML富文本格式的的,但是微信小程序不能直接解析HTML,需要将内容中的HTML标签转换成微信小程序所支持的标签。开始的时候想过自己写方法来替换标签,后来找到了一个很好用的插件:WxParse。今天分享给大家,Github地址:https://github.com/icindy/wxParse使用WxParse解析富文本数据 1.将下载下来的插件文件夹复制到我们的项目根目录下(其中emojis文件可根据自己所需决定...
本文实例讲述了JavaScript解析JSON数据。分享给大家供大家参考,具体如下: JSON数据是一种常用的数据格式,解析方式也比较简单,特别是由于JavaScript原生就支持JSON,所以JavaScript能够更好的解析JSON。 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>解析JSON</title> <script> // 开始解析 function startParse() {// ,{"字段2":{"地址2":"数据2"}}{"字段3":...
npm是什么npm是一个包管理工具,开源作者可以把开源包发布在平台上供其他人下载使用。前端的同学基本都使用过npm,这里就不做过多介绍。日常工作中npm的主要用途就是根据项目的package.json使用npm install去安装依赖。npm install可以说是我们使用最频繁的一个指令。在npm5版本之前,npm install会根据package.json指定的依赖版本去进行安装。但往往package.json中指定的是一个版本范围,例如:"dependencies": {"packageA": "^2.0...
前言 koa被认为是第二代web后端开发框架,相比于前代express而言,其最大的特色无疑就是解决了回调金字塔的问题,让异步的写法更加的简洁。在使用koa的过程中,其实一直比较好奇koa内部的实现机理。最近终于有空,比较深入的研究了一下koa一些原理,在这里会写一系列文章来记录一下我的学习心得和理解。 在我看来,koa最核心的函数是大名鼎鼎的co,koa正是基于这个函数实现了异步回调同步化,以及中间件流程控制。当然在这篇文章中...
1. 回调金字塔及理想中的解决方案我们都知道javascript是一门单线程异步非阻塞语言。异步非阻塞当然是它的一个优点,但大量的异步操作必然涉及大量的回调函数,特别是当异步嵌套的时候,就会出现回调金字塔的问题,使得代码的可读性非常差。比如下面一个例子: var fs = require(fs); fs.readFile(./file1, function(err, data) { console.log(data.toString()); fs.readFile(./file2, function(err, data) { console.log(data.toS...
前端模块化关注前端技术发展的各位亲们,肯定对模块化开发这个名词不陌生。随着前端工程越来越复杂,代码越来越多,模块化成了必不可免的趋势。 各种标准由于javascript本身并没有制定相关标准(当然es6已经有了import和export),所以在模块化方面诞生了各种不同的规范。主要有AMD规范(随requirejs诞生而普及),CMD规范(随seajs的出现而普及),commonjs(主要用于node,并不适合前端)。至于以上几种规范的异同,无耻的我在这...
关于vuex的基础部分学习于https://www.gxlcms.com/article/163008.htm 使用Vuex的时候,通常会实例化Store类,然后传入一个对象,包括我们定义好的actions、getters、mutations、state等。store的构造函数: export class Store {constructor (options = {}) {// 若window内不存在vue,则重新定义Vueif (!Vue && typeof window !== undefined && window.Vue) {install(window.Vue)}if (process.env.NODE_ENV !== production) {// 断...
一、官方文档 1、第一步 const myPlugin = store => {// 当 store 初始化后调用store.subscribe((mutation, state) => {// 每次 mutation 之后调用// mutation 的格式为 { type, payload }}); };2、第二步 const store = new Vuex.Store({// ...plugins: [myPlugin] });二、编写一个打印日志的插件 1、函数的书写 import _ from lodash; function logger() {return function(store) {let prevState = store.state;store.subscribe(...
下面是nodejs创建一个服务器的代码。接下来我们一起分析这个过程。 var http = require(http); http.createServer(function (request, response) {response.end(Hello World ); }).listen(9297);首先我们去到lib/http.js模块看一下这个函数的代码。 function createServer(requestListener) {return new Server(requestListener); }只是对_http_server.js做了些封装。我们继续往下看。 function Server(requestListener) {if (!(th...
如果你有 express ,koa, redux 的使用经验,就会发现他们都有 中间件(middlewares)的概念,中间件 是一种拦截器的思想,用于在某个特定的输入输出之间添加一些额外处理,同时不影响原有操作。 最开始接触 中间件是在服务端使用 express 和 koa 的时候,后来从服务端延伸到前端,看到其在redux的设计中也得到的极大的发挥。中间件的设计思想也为许多框架带来了灵活而强大的扩展性。 本文主要对比redux, koa, express 的中间件实现...
小程序5种路由方法使用场景,封装路由文件和路由方法,提升小程序体验和开发效率明确要解决的问题 每次使用路由时,总是粘贴复制路径,这样在路径有修改时,需要修改所有用到该路径的地方,维护成本高路由跳转时拼接参数让人头大,业务复杂时要拼接十几个参数路由返回,只会返回一层,不能直接返回到目标页面,因为不知道目标页面是否在路由栈中,也不知道在第几层这些问题都可以通过封装路由文件和路由方法解决,提供开发效率,减...
一、概念介绍 1、POST请求:HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据。 2、 Content-Type : 是指 http/https 发送信息至服务器时的内容编码类型, Content-Type 用于表明发送数据流的类型,服务器根据编码类型使用特定的解析方式,获取数据流中的数据。四种常见的 POST 请求的 Content-Type 数据类型: application/x-www-form-u...
前言this 关键字在 Javascript 中非常常见,但是很多开发者很难说清它到底指向什么。大部分人会从字面意思上去理解 this,认为 this 指向函数自身,实际上this 是在运行时进行绑定的,并不是在编写时绑定,它的上下文取决于函数调 用时的各种条件。this 的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。总结: 函数被调用时发生 this 绑定,this 指向什么完全取决于函数在哪里被调用。一、this 的绑定规则this 一共有 4 ...
最近在项目中遇到一个需求,有一个列表需要滚动加载,类似于微博的无限滚动。当时第一反应时监听滚动事件,在判断滚动到达底部时加载下一页,同时心里也清楚,监听滚动事件需要做好截流。顺手搜索了下发现有一个现成的插件vue-infinite-scroll ,用法也很简单,于是乎就用了起来。 需求上线后,对它的实现挺好奇的,于是研究了一番源码,这篇文章就是源码解析笔记。 插件使用方法 这是一个 vue 的指令,按照 github 仓库上的介绍,用...
Vue 的用法没有变化: <template lang="pug">transition(name="sider")div.helloh3 {{msg}}p(:style="{color:#000}", :htmlData="msg") p labelbutton(@click="clickMe") clickTest </template>要注意的一点是: 标签后面如果有属性(括号内的) 他和括号之间不要加空格,加了空格就会被当成字符串解析 vue-cli 2+ 配置: 下载包: npm i -D pug pug-html-loader在build/webpack.base.conf.js 的 module 中添加规则: module: {rules: [{te...