最近心血来潮在开发个人博客网站,刚好可以趁这个机会出一个系列文章讲讲前端界面的设计,后端业务逻辑的实现以及前后端的交互。具体的架构我是采用Vue.js + Node.js + mysql。前端界面设计使用了element-ui和mavon-editor,后端依旧使用了express框架。首页效果和文章发表界面效果如图所示:
项目开发流程 划分目录 引用两个css文件 项目模块划分:tabbar->路由映射关系 目录风格 文件夹字母小写,组件首字母大写比较清晰 代码组织格式 一个项目里页面唯一的用id,多个用class methods,方法里面写函数,生命周期只负责调用就行 页面复杂的话就再分子组件 $el:相当于根组件,可以拿到组件的js原生值比如浏览宽高 目录结构 注意看每个文件的后缀名,没有后缀的就是文件夹。 src assets 静态资源 css base 地基(公共样式,自己的)
之前写了一篇介绍token的文章:简单理解Token机制,token算法自己设计的,使用了随机算法,导致token无法进行反向解密。所以我当初使用了redis进行存储token,前端调用API时需要携带token进行身份验证,token有效期48小时。但是我们有说过:sessionid是需要空间进行存储的,但是token在服务器是可以不需要存储用户信息的。所以我们能不能做到用户注册登陆成功给用户生成一个token返回给客户端,等前端携带token调用API时我们直接解析token看能否解析出用户数据来决定用户是否有接口权限呢?事实上NodeJS提供的一个npm包:jsonwebtoken就可以实现token的生成与反向解密出用户数据。接下来我们看看jsonwentoken如何进行使用。
一般多个项目使用一些公共组件的时候,我们没必要在每个项目里写公共组件代码,我们可以将公共组件封装成一个库,上传至npm,这样我们在项目中使用就可以直接从npm下载直接使用。当然我们也可以搭建自己本地的npm镜,而本文主要讲述上传npm。
本文以 Twitter 工程师 Bonnie Eisenman 撰写的 Learning React Native 一书的第九章内容为蓝本,总结了 React Native 项目实践的一些经验。
在uniapp中你可以这样实现,你可以使用Promise对象来实现当全局公共方法执行完后执行调用者的逻辑。以下是一个简单的示例代码:
在做vue中大型项目的时候,官方推荐使用axios,但是原生的axios可能对项目的适配不友好,所以,在工程开始的来封装一下axios,保持全项目数据处理的统一性。此文主要讲在vue-cil项目中如何封装axios,封装请求,封装公共的api,页面如何调用请求。
全局有一个公共的容器(所有组件都可以操作),我们可以在某个组件中把全局容器中的信息进行修改,而只要全局信息修改,就可以通知所有用到该信息的组件重新渲染(类似于发布订阅)==》redux就是这种解决方案:redux只有一个作用,就是为了实现组件之间的信息交互。
简单地说快应用是国内的十大主流手机厂商比如小米、华为、ov 等联合推出的一种新型应用。无需安装,秒开,体验媲美原生。还提供了像原生应用一样的入口:应用商店,搜索页等。
上一篇文章前后端分离之交互(1)我们讲到了如何使用JQuery发起ajax请求,从后端接口获取前端需要的数据。JQuery封装好的ajax请求确实很好用,对比原生ajax的使用简直就是鸿沟的差距。
快应用是基于手机硬件平台的新型应用形态,标准是由主流手机厂商组成的快应用联盟联合制定。其标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台,以平台化的生态模式对个人开发者和企业开发者全品类开放。快应用具备传统 APP 完整的应用体验,无需安装、即点即用;覆盖 10 亿设备,与操作系统深度集成,探索新型应用场景。快应用 ── 复杂生活的简单答案,让生活更顺畅。
微信小程序采用wxml、wxss、javascript进行开发,本质是一个单页应用,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口。微信的架构,是数据驱动视图的MVVM模式,其视图UI和数据是分离的,所有的页面更新,都需要通过对数据的变更来实现。小程序分为两个部分Webview和AppService,Webview主要用来展现渲染界面,AppService用来处理业务逻辑、数据及接口调用,通过系统层JSBridge实现通信,实现UI的渲染与事件的处理。
React核心的部分其实是由入口、核心协调器、事件中心、DOM渲染器来实现的,后续的文章我们会从渲染挂载、更新、事件触发等角度详细剖析内部的原理。
一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。
Vue-H5-Template 项目以小商城作为基本的内容演示,使用 Vue3.0+Typescript+Vant 搭建 移动端h5页面 开发所需的基础模板,并提供一些通用型的解决方案及扩展功能。
想到哪说哪,, 前端架构当然首推MVC,在我这个项目里, (一)、view层,就是html、css、一些直接控制DOM的JS; --login.html,base.css,login.css, --这些个文件都算是v层的 //-------------- (二)、mode层, 1,可以直接访问数据:ajax get json 2,对数据进行处理:for dada 3,提供一些方法给C、V调用 -- common.js,里面进一步封装了对$
介绍 使用koa搭建node服务 并连接mongodb返回前端数据 git https://gitee.com/wjj0720/koa... 项目初始化 首先保证你的node环境已经就绪 1、创建项目文件夹 创建文件夹test,在文件夹中shift+右键 在此处运行命令行 运行 npm init --y 2、 安装依赖 npm i koa koa-body koa-static koa-cors 创建服务 // server.js /* * 1、在项目文件中创建一个server.js文件
在src目录下新增一个目录utils,并新增一个js文件http.js,用以实现axios的封装
最近在项目业务中有遇到一些问题,一些通用的方法或者封装的模块在PC、WAP甚至是APP中都需要使用,但是对于业务的PC、WAP、APP往往是不同的业务、不同的代码库中,尽管已经将公用的组件和方法抽离到各自公共common中,但是各个大业务大方向上的公用封装依然不能满足需求。
小程序现在非常火爆,仅微信小程序已经拥有1.7亿日活用户,上线58万个小程序,吸引了超过100万个开发者,2300个第三方开发平台加入,有hishop小程序、有赞小程序、晓商+小程序、微盟小程序、微尘小程序、青芒小程序、胜赞小程序、点点客小程序、品玩小程序、有店小程序......近两年,小程序电商快速崛起,小程序电商之所以被看好,根本原因在于微信以及支付宝的社交优势。微信拥有超过10亿人次的日活跃用户,对于互联网商业来说,这是一个巨大的增量。相比PC和APP时代,小程序大幅降低了做生意的门槛,诸多数据也一再印证了小程序在电商领域的巨大潜力。
Webpack是实现我们前端项目工程化的基础,但其实她的用处远不仅仅如此,我们可以通过Webpack来帮我们做一些自动化的事情。首先我们要了解require.context()这个API
小程序支持模块化开发,可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。引入模块通过require方式。
在Java或Swift等语言中使用的传统类作为创建对象的蓝图,在 JavaScript 中不存在,原型继承仅处理对象。
我们在开发Halo轻量博客主题的时候,还需要了解他们内部的封装模板。在这里,老蒋整理来自Halo官方的公共宏模板代码规范。我们将某些常见的全局变量封装成了一个公共模板,我们只需要引入该模板,然后调用其中的宏模板即可。
小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。对于开发者而言,小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换,也比较适合初创公司创业阶段用来“试错”的产品,在开发成本、用户体验、运营方式、迭代更新方面小程序都很有优势。
BlueOS 应用项目,主要包括配置文件 manifest.json、应用入口文件 app.ux,以及页面代码;完整的项目还需要图片、样式等资源文件,也需要将共用代码抽离为组件,官方推荐的项目结构包括如下内容:
日常的日志调试是个很基础的东西,console.log也是我们每天都经常使用的东西,有一天看到朋友的项目日志是这样的。
在校学了三年的后端开发,没想到刚步入公司干起了前端工作,华丽的转变让我有点猝不及防,谁让我辣么优秀!
项目源代码:https://github.com/nnngu/nguSeckill ---- 前端交互流程设计 对于一个系统,需要产品经理、前端工程师和后端工程师的参与,产品经理将用户的需求做成一个开
其实开发一个自己的 npm 包也不难,如果一个东西需要在我们很多项目中复用,那封装成一个公共的 npm 包就是一个很好的方式,也方便统一维护和管理,步骤主要有以下6个步骤:
一个项目的开始,特别是丰富多样的前端工程,首先一定要确定好采用的框架和技术点。2016年vue.js如火如荼,webpack强势崛起,但是是否就可直接拿到项目中搞起呢?答案是否定的,一个新的技术如果自己或团队中成员都还在学习摸索的过程,是肯定不能在生产环境中使用的,更何况这是个创业的团队,没有成熟完整的前端团队。所以我当时还是走老套路,jquery为核心,fastclick辅助,requireJs按需加载,arttemplate做模板渲染,核心UI类库使用jqueryWeUI,加上sass预编译样式文件,gulp打包构建,(后台是微服务架构,maven构建,springMVC+mybatis,此工程为h5前置工程)这样一来就基本上满足条件,可以开工了。
我们前端开发就要有面向对象的思想,让自己写的程序更加简单明了,不要有太多的融于代码,所以这里提到了封装的思想。 之前的项目里每次调用网络请求都调用了类似的代码: //加载数据 requestData() { var that = this if (that.data.listData.length < 1) { wx.showToast({ title: '加载中', duration: 500 }) } else {
使用Express可以快速地实现一个包含增删改查(CRUD)功能的Web项目,下面是一个基于Express实现的简单ADUS(添加、显示、更新、删除、搜索)项目
Axios是一个基于Promise的HTTP客户端库,可以用于在浏览器和Node.js中发送HTTP请求。为了方便使用,我们可以对Axios进行封装,将常用的配置项和请求方法封装起来,使其更易于使用。
大家好,又见面了,我是你们的朋友全栈君。1. YUI3总体认识 1.1 面向对象的JS编程,RIA工具: 面向对象的JS编程,主要体现的以下几个方面: 1. 继承 JS有三种继承方式:javascript中继承一般分为三种方式: ”类式继承”,”原型继承”,”掺元类” 2. 封装: JS的Function自身就实现了对变量的封装,局部变量等。Object对性的属性也可以实现一定的封装效果 3. 接口和抽象类 YUI3 oop的argument()可以实现类似的功能 4. 模块之间的引用,即代码复用 YUI3的沙箱模型,可以使JS模块化,在Y.use中引入,可以实现代买复用 1.2 重量级框架,oop思想 YUI3中的oop模块就是面型对象编程的重要体现 1.3 YUI3 API使用 点击YUI3 的web site后能看到他的详细结构: 学习他的API就应该从这个开始: 第一列就是一些帮助文件信息,还有一些辅助开发工具,我用过的也就是Console了,但是它是不能单独使用的,必须引入YUI3的默认CSS文件才可以使用。剩下的两个就没有使用过。
安装webpack,打包工具,安装webpack-dev-server,安装babel解析es6语法,初始化npm环境。
webpack ensure相信大家都听过。有人称它为异步加载,也有人说做代码切割,那这个家伙到底是用来干嘛的?其实说白了,它就是把js模块给独立导出一个.js文件的,然后使用这个模块的时候,webpack会构造script dom元素,由浏览器发起异步请求这个js文件。
javascript中的面向对象: ECMA标准定义JS中的对象:无序属性的集合,其属性可以包含基本值、对象或者函数。可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法)
题目为动态组件,但为了好理解可以叫做远程加载动态组件,后面统一简化称为“远程组件”。
一直想做一个调研,到底有多少比例的 web 前端工友工作内容以 开发后台管理系统 为主。
1000行JS代码,听起来挺多的,但实际上真不算什么,随便一个功能完备、代码健壮的JS应用或是模块,很轻松的就写出1000多行,看这里,我以前写的一个tabel插件,带有CRUD功能、展开、加载、上传
昨日我们已经设计了一个简单的功能页面,但是里面显示的数据是假的固定死的,主要是为了展示功能实现后的实际效果。这个也就是大部分前端程序员在开发中遇到的一个阶段,前端开发完成就差后端给数据,但是后端有可能还没开发完成,客户又想看实际什么效果那么就得造一点假数据来填充页面,这样给客户看开发成果就比较直观,当然现在前端老哥办法多,就算后端api还未开发完成,也能使用一些模拟数据接口工具,比如mock、json-server等工具,模拟一些数据接口返回数据,便于前端程序正常运行和测试,等到后端开发完成就替换为真实接口即可。所以说前后端分离也有这个好处,就是能自己开发完成后不需要等待后端,提升了开发效率,当然实际过程中就算前后端分离,但是前后端联调也是一言难尽啊。这个咱在这就不说了。
通过前端项目Mall-project (https://github.com/Ray2310/MallProject)使得对于vue技术的实现有了大致的了解和使用。 这里我将具体到一个模块的完成, 从而实现对于vue技术在登录模块下的各个方面的细致讲解。 首先,我们按照vue的思想, 通过组件的形式来完成对于项目的code。 因此按照项目的UI图 以及 登录模块的接口文档, 我们将项目划分为以下内容来进行将解
image.png 在今天同学们发我的作业中,我给一个同学回复说,你这不是组件化,只是一个效果的实现。他问我,那还要什么呢?我不是特别理解。 今天咱们先聊一下,什么是组件。这个东西其实没有一个正式的定义,说什么什么样就是组件,别的样的不是组件。没有的,没有这样的一个说法,一般来讲,我个人认为有以下这几种情况, 1,着重于具体业务的封装,不强调复用性。就是比如一个大方法,大函数吧,一个动画,一个购物车,一个页面路由,这都是针对具体业务的,拿到其它网站就没法用了。这些对于业务的组件化封装,目的为了可维护性。 2
中台覆盖了多线业务,自然对应的不少后台系统,考虑日后到项目应用,满足业务的快速迭代,无论是技术版本升级、敏捷开发、可复用性和可维护性等。
有好几个小伙伴问我如何去阅读源码?如何成为开源项目贡献者? 短暂思考后先带你入门,回答第一部分
最近接二开的项目当中,客户要求页面上有下载excle模板的按钮,并提供输入数据的基本模板
在 JavaScript 中不存在 Java 或 Swift 等语言中所使用的作为创建对象 蓝图的传统类,原型继承仅处理对象。
领取专属 10元无门槛券
手把手带您无忧上云