前端开发可以使用传统的jQuery方式,如果用现在的前端开发,往往用nodejs,然后做前后端开发,或者只做前端开发,纯做后端也行,nodejs现在已经通吃了
现在做前后端分离,后端用django来做,前后端分离不在乎用什么来做,只要给http接口即可,这样就是前后端独立开发各自的,项目就可以并行起来。
对于前端开发来讲,现在不是传统的方式,用react开发有它的好处。,用了前端的mvc,或者各种mvvc,mvvm各种变化,不管怎么变都是从mvc来的。
开发的方式发生了很大的变化,首先需要用脚手架来搭建出想要的东西
安装依赖包,一种是npm,一种是yarn(兼容了npm),可以这么安装yarn
项目的根目录有一个packge.json,将里面的依赖都安装一遍
现在就去下载包了
把这个一解压,就可以做前端项目了,frontend前端,静态一般都是nginx,httpd来管,动态都是tomcat,django,flask,做好动静分离
所有的代码写在src下
babel用的
git用的
npm register链接到淘宝
真正看到的网站首页
工具vscode配置
开发用
部署用
在src建立三个目录,以后就写react所有组件,react组件要继承componet或者无状态组件写一个function就好了
第二个service,这个跟可视化组件无关,是用来解决中间怎么服务的,这一次写的代码是分层架构
第三个是画样式表的
做模版
所有js入口
做一些信息上的变动
打开目录
index是最后进入的地方
先看看npm rc是否链接的是国内的
babel定义也是对的
秃字符,^2.9.1就是,2.x最大的
这个工具,vscode用的
这是进入的首页
yarn.lock,下载了什么版本写的很清楚
一般进去之后,改改author之类的,name,description。
repository(git配置)。一般可以做git免密登录
开发的时候需要用到一个东西,devserver
devserver有很多项,这个就照这么配置即可,因为这个是牵扯到跨域的时候才用得到的
django现在是在后台暴露8000,这里是3000,所以以后只能让用户看到3000端口的,不能看到8000端口的
hmr热模块替换
要不要在控制台显示信息
显示那些信息,插入主干信息,false,不然太多信息了
这个压缩指的是gzip,server和浏览器之间数据可以进行压缩
安装依赖
把package.json的所有依赖都下载下来
yarn相当于npm install
要用到两个东西,跟路由相关的
这两个其实也可以放到package.json里,是为了提醒下
跟dom相关的
这两个工具有了之后就可以做前端路由
前端是需要访问后端提供的http服务,访问url,用get post请求,将数据返回前端,可以不返回真实内容,但是至少有一个状态码,让浏览器端自己通过状态码来决定如何处理
前端路由
这是官网
basic routing是先要学习的,先安装一下
这就是JSX一个组件
这个JSX相当于render函数返回一个h2
第一个修改的就是src的index,在这之前还可以先把目录创建出来
把这两个css放到src下的css目录里
重新缺什么导什么
这样就可以使用了
现在项目其实可以运行的
现在其实已经ok了
看一下效果
这个项目采用前后端分离(一般用到模板技术就用不到这个了,模板里可以用jQuery放到前端什么样的目录里,可以使用前端技术)
前后端分离,前后端只靠数据来通信,所有数据放在后端(django,flask),前端放样式(react作为前端技术),
中间使用restfu份风格的api设计,来实现服务间的通信的。
用无session认证技术,JWT(一般服务器多了,用单点登录比较多的),强密码目前是最强的。
可视化组件都是蚂蚁金服开源的antd组件。
最后部署时采用动静分离的部署方案,nginx+uwsgi+django,动静分离的部署
这俩个可以写
首页关于页都是可以写的
页可以点击案例,basic
这就是前端路由,没到服务器去,这里面没有和服务器进行交互,以前点链接按照道理要跟服务器交互,服务器给你新网页的,这里点了半天,服务器没有收到请求,所有请求都是在js端前端完成的,跟服务器没有发生任何交互,表面看是做切换,但是只是在浏览器完成的,只是相当于把要的内容动态生成了。
但是要是这个填充内容确实需要来自服务器端,我们才发送ajax请求到服务器去要数据,才拿回来数据,否则做的所有事情都是在客户端点来点去
但是毕竟路径变了,这个路径需要配置,点了之后需要调用什么组件,做什么呈现,这又是通过一个地址对函数进行映射,所以又叫路由,叫前端路由。
这个跟后端路由不一样,后端路由是要通过http请求,将url发过去,将url和你的view函数之间建立映射关系。
这一块是它的路径被你的js拦截了,这个js现在找到一个现在所谓的视图函数,这个视图函数全在前端的js当中,根本没跟后台进行交互,除非有必要,根本没给服务器端发过请求
这两个其实是可以抄一下的
这个跟上面两个是无状态组件的两种写法
组件一定要大写
就变成这样了
我们现在想要地址的变化,然后能够访问到相当于不同的页面,这种叫单页面应用,页面时不刷新的,刷页面中的组件,dm树只替换一部分即可
所有右键查看源代码永远都是这么些内容,所以js加入到前端开发,整个开发方式都跟以前不一样了
需要前端路由组件来解决问题
这个路由时不可见组件
路由,里面些了路径=/,exact 相当于严格,路径必须等于/,这就是路径和组件的映射
root没有定义
还要抄这一句话
这就是路由route,link链接
路由外面应该套一个东西
route要使用要在外面套一个router
router看起来时一个顶级元素
router只能有一个child
挪到div里,现在就等于是一个child了
现在就有了
about可以访问
要使用路由就需要,引入一个组件,操作dom,
使用一个router组件是来定义路由的
route只是一个定义,只是将路径和调用的组件定义一个映射关系,组件的变化是通过url的变化而变化。页面一直没动。我们只是在替换组件,替换dom树中该显示什么。
否则传统的页面就是点一下请求到后端,页面刷新。所以我们用react-router来完成前端组件替换
router中必须只有一个元素,所以我们在中间加了div,div元素内部有什么就管不到了
地址一旦变化,组件就被替换掉了
其实是做了组件替换,并没有访问后端,所以对服务器的负担是非常小的
有一个非常著名的网站codepen,这个网站有大量的js代码可以用
这段html复制下
在项目里建一个测试用的t.html,现在其实没有样式,通过class调用外部样式
外部样式放在了css
已经放到login.css当中
我们要把这样的东西,装到组件里,到时候通过前端路由,然后把组件塞进去
创建组件,右键component,准备创建
这是来自react的,在这里只是创建组件,div顶层也有了
需要导出一下组件,缺省导出
要写一些东西,现在组件有了,用这样的方法就把login加进来了
login就有了
改一下文字
现在看看能不能加个样式,现在这样提示解析失败了
这里没加
加上css
需要重新启动
现在这样至少有点效果
还是用这里的模版
做一些调整,所有的class都要换成className
这样界面就出来了
改成中文试试
点击闪一下是因为有form表单
有form标签,默认行为就是要提交post请求的,提交整个页面同步刷新,等服务器response,
提交整个页面同步刷新,等服务器response,就会刷成这样
有些人p标签习惯不闭合,但是这里是JSX语法,要求必须闭合
a标签都要改成 link to
可以是一个login,一个reg,免得出错
先把只要是用的链接都改了,现在一加就可以用了
改了就归路由管了
注册页顺便也改下,写一个reg。js
link 没有defined
大括号是不能去掉的
改一下classname
注册是跳了,但是前段路由没有管理起来,在index里没加
index里加一下
改一下中文
这个东西用户体验感觉特别好,没有和后台交换几乎是瞬间完成的,但是有时候就是模版单挑,登录到首页模版就没变过。这就是怎么把其他网页一些好的元素搬到页面里来。做一些调整,常熟市文件拿来,最后导入就可以了
导入出错是因为加载不了样式表
加在这里
两种写法都有可以
最后看到了登录页面
用前面的方法还是变成组件,随意
但是现在没有导航栏
导航栏其实就是有的
这两部分是一一对应的
路径变化会找组件,然后组件会来渲染
一保存页面就能看到了
丑一点没事,antdesginer,再修改漂亮的
只要router函数是顶级元素就行,里面基层div随你
这些都基本达到了项目的构建:
首先搭建脚手架,基本不改,除非升级个别组件的版本,这一次多了三个目录,分别做不同的事情,比如
componet都放可视化组件,view,
service中间层些业务的地方,C还管一些调度的功能,从后端拿到数据,
css管样式
改一下配置,需要加代理
安装路由组件
组件加进来使用方式
官网是让我们在router内部使用route组件,route组件能帮我们实现前端路由,前端路由实现的是,前端url到组件的映射,页面变了直接换组件,页面不变
传统页面如何变成主键跟现在的东西结合在一起,可以写JSX语法,把传统页面剥离出来即可,唯一要解决的是样式问题,
还好codepen提供了大量的东西,需要你去选择
注意要把class全部换成className
关注的链接要和路由挂钩,就要换成Link,否则路由就不管你了
有些非闭合标签要闭合,比如hr,br,否则会报错出来
加到首页里加一个router
样式表加载错误,需要改一个配置文件
就可以看到登录页面了
注册组件也是一样的办法
加一条静态/前端路由即可
就实现了注册页面
把导航栏加上去就可以实现快速切换