赞
踩
目录
前端技术是互联网的大技术栈里面一个非常重要的分支。前端技术本身也就见证了互联网技术的发展和变迁。
前端技术是通过浏览器将信息呈现给用户所涉及的互联网技术,当然,现在也并非所有前端产品都是通过浏览器展示给用户看,例如微信小程序、支付宝小程序、移动端应用等。
前端基础技术三剑客:HTML5、CSS3、JavaScript。h5和c3使得前端页面的美化程序和交互能力都有了非常大的提升。
前端技术主要的演变即从静态页面、Ajax阶段、MVC阶段、SPA阶段。
静态页面阶段,前端代码只是后端代码的一部分,浏览器展示给用户的页面都是静态的,页面响应速度慢、只能处理简单的用户交互、也不美观。
Ajax阶段,前端和后端部分分离,前端在展示页面的提示也需要进行数据的管理和用户的交互。后端的工作是提供数据,前端代码变得逐渐复杂。
前端要完成的功能越来越复杂,代码量也就越来越大。所以许多框架应运而生,大多采用MVC或mvvm模式,将前端逻辑里的数据模型、视图展示和业务逻辑分开。
前端技术到spa阶段网站不仅仅是用来展示数据,是一个完整的应用程序,浏览器只需要加载一次网页,用户就可以体验到多页面交互的复杂应用程序,程序响应速度快,用户体验好。
HTML是一种描述性的网页编程语言,我们俗称的超文本标记语言,可以描述文本信息、图片、音频、视频等信息。
其不像其他语言有很全的逻辑处理能力,更确切的说是一种标记语言,定义了一套标记标签来描述和控制网站的渲染。
vscode
h1到h6定义标题标签
p标签定义段落
a标签是超链接
img标签图像
div盒子
HTML对样式的控制是非常有限的,平常所能看到的五彩斑斓、多姿多彩的网页都归功于CSS的强大能力。
CSS是层叠样式表。用处是定义如何展示HTML元素,通过css控制网页元素的样式极大提高了编码效率。
css代码的语法规范的组成:选择器和声明语句。
声明语句用来定义样式,选择器用来指定要使用当前样式的HTML元素。css中基本的选择器有通用选择器、标签选择器、类选择器和ID选择器。
使用*星号来定义通用选择器,对所有元素都生效
配合标签的class属性进行使用
标签的ID属性
在实际开发里,常用的是类选择器,可以根据组件的样式将其定义为不同的类,通过类选择器来对组件进行类定义。
CSS提供了非常丰富的样式供开发者进行配置,包括元素背景的样式、文本的样式、边框与边距样式、渲染的位置登封。
和背景有关的属性都是以background开头,使用CSS对元素的背景样式进行设置,可以实现相当复杂的元素渲染。
对齐方式配置、缩进配置、文字间隔配置等。
JavaScript是学习vue开发技术的基础。
JavaScript是网页的灵魂,html和css是对网页的渲染进行布局和调整,要使网页具有强大的功能并且可以和用户进行复杂的交互,都需要使用JavaScript来完成。
JavaScript能够动态改变HTML组件的内容。
JavaScript的语法也是比较简单的,入门是很容易的。主要的特点是不像某些强类型语言那样严格,语句格式和变量类型都比较灵活。
JavaScript使用var或者let来进行变量的定义。两者的差别是变量的作用域的不一样,定义变量的时候,无需关心变量的类型。
所有的编程语言都存在表达式,表达式由运算符和运算数构成。运算数可以是任何类型的数据,也可以是任意的变量。支持常规运算符,例如+、-、*、/,比较运算符<,>,<=,>=等等。
函数是程序的功能单元,在JavaScript中定义函数主要有两种方法,一种是利用function关键字进行定义,另一种是es6新增的利用箭头函数进行定义。这两种定义函数,在调用的时候方式都是一样的。
条件语句是JavaScript进行逻辑控制的重要语句,if和else关键词实现。
switch和case也可以实现多分支语句。
while循环和for循环
Vue的定义是渐进式的JavaScript框架。渐进式指的是其被设计为可以自底向上逐层应用。我们可以只使用Vue框架中提供的某层的功能,也可以与其他第三方库整合使用。
直接使用CDN的方式进入Vue框架
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
- <title>Document</title>
- <!-- <script src="https://unpkg.com/vue@next"></script> -->
- </head>
- <body>
- <div style="text-align: center;" id="application">
- <h1>{{count}}</h1>
- <button v-on:click="clickButton">点击</button>
- </div>
-
- <script src="https://unpkg.com/vue@next"></script>
- <script>
- const App={
- data(){
- return{
- count:0
- }
- },
- methods: {
- clickButton(){
- this.count++
- }
- },
- }
- Vue.createApp(App).mount("#application")
- </script>
- </body>
-
- </html>
首先在head标签里加入了一个script标签,采用CDN的方式引入Vue3的新版本。
然后在body标签里添加一个div盒子,里面加入了一个标题和按钮
h1标签里运用了vue的变量替换功能,v-on:click属性用来进行组件的单击事件绑定。
定义vue组件,在body标签霞添加一个script标签,data方法用来返回组件所需要的数据,methods定义组件所需要的方法函数。
需要完成的工作:
1.登录页面需要有标题,提示用户当前的登录状态
2.在未登录时,需要有两个输入框以及登录按钮供用户输入账号、密码和进行登录操作
3.在登录完成后,输入框需要隐藏,需要提供按钮让用户登出
借助vue的单双向绑定和条件渲染功能,这些操作会比元素的JavaScript DOM操作要简单很多。
- <!DOCTYPE html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script src="https://unpkg.com/vue@next"></script>
- </head>
-
- <body>
- <div id="Application" style="text-align: center;">
- <h1>{{title}}</h1>
- <div v-if="noLogin">账号:<input v-model="userName" type="text" /></div>
- <div v-if="noLogin">密码:<input v-model="password" type="password" /></div>
- <div v-on:click="click"
- style="border-radius: 30px;width: 100px;margin: 20px auto;color: white;background-color: blue;">{{buttonTitle}}
- </div>
- </div>
- <script>
- const App = {
- data() {
- return {
- title: "欢迎您:未登录",
- noLogin: true,
- userName: "",
- password: "",
- buttonTitle: "登录"
- }
- },
- methods: {
- click() {
- if (this.noLogin) {
- this.login()
- } else {
- this.logout()
- }
- },
- login() {
- if (this.userName.length > 0 && this.password.length > 0) {
- alert(`userName:${this.userName}
- password:${this.password}`)
- this.noLogin = false
- this.title = `欢迎您:${this.userName}`
- this.buttonTitle = "注销"
- this.userName = ""
- this.password = ""
- } else {
- alert("请输入账号密码")
- }
- },
- logout() {
- this.noLogin = true
- this.title = "欢迎您:未登录"
- this.buttonTitle = "登录"
- }
- }
-
- }
- Vue.createApp(App).mount("#Application")
- </script>
- </body>
-
- </html>
效果图:
vue3的设计目标:
1.更小的尺寸和更快的速度
2.更加现代化的语法特性,加强了typescript的支持
3.在api设计方面,增强统一性和一致性
4.提高前端工程的可维护性
5.支持更多、更强大的功能,提高开发者的效率
vue2和3的差别
2的时代,最小化被压缩的vue核心代码约为20kb,目前3的有10kb,大小减少了一半。在前端开发中,依赖模块越小,意味着更少的流量和更快的速度。
3中,虚拟dom的设计也进行了优化,引擎可以更加快速地处理局部的页面元素修改,在一定程度上提升了代码的运行效率,vue3页配套进行了更多编译时的优化,例如将插槽编译为函数等。
代码风格方面。3基本弃用了类风格的Api,而推广采用函数风格的API,以便更好的对typescript进行支持。这种编程风格更利于组件的逻辑复用,例如v3组件中心引入的setup(组合式api)方法,可以让组件的逻辑更加聚合。
v3中也添加了一些新组件,例如teleport。
在学习阶段,可以使用三件套开发一些简单的静态页面,但是大型商业应用要完成的代码量会非常大,要编写的功能函数会很多,而且对于交互复杂的项目来说,不使用框架开发,后期维护和扩展非常困难。
既然选择使用框架,为什么一定是vue呢?web早期,jQuery的JavaScript框架非常流行,其内部封装了大量的JavaScript函数,可以帮助开发者操作dom,并且提供了事件处理、动画和网络的相关接口。当时的前端页面更多是用来进行展示的,所以使用jquery框架足以应付所需要的逻辑交互操作。后来互联网发展,就诞生了angularjs框架,这种框架的核心是响应式和模块化,其使得前端页面的开发方式发生了变革,前端可以自行处理非常复杂的业务逻辑,前后端的职责也逐渐分离,前端从页面展示向单页面应用发展。
angularJS虽然强大,但是确定也非常明显:
1.学习曲线陡峭,入门难度高
2.灵活性很差
3.速度性能差
4.某些api设计复杂,使用麻烦
所以为了应对这些问题,vue和react出现了。
这两种框架在前端项目开发中平分秋色,都是非常优秀的框架。设计上,这两个有很多的相似之处,比如相较于功能齐全的angularjs来说,他们都是骨架类的框架,即只包含基础的核心功能,路由、状态管理都需要考分离的插件来支持。逻辑上,v和r都是基于虚拟dom树的,改变页面真实dom树比改变vdom的开销要大很多,所以这两者的性能都非常优秀。v和r都采用组件化的方式进行编程,模块之间通过接口进行连接,方便维护和扩展。
v和r也有很多不同之处。
v的模板编写采用的是类似HTML的模板方式,写起来和标准的HTML很像,只是多了一些数据绑定和事件交互的方式。r采用jsx编写模板,虽然这种编写方式提供的功能更加强大,但是JavaScript混合xml的语言会使得代码看上去很复杂。v和r的还有一个很大的区别就是组件状态管理,v的状态管理本身非常简单,局部的状态在data中进行定义,其默认就被赋予了响应性。修改的时候直接将对应属性更改即可,全局状态管理有vuex来完成。r的状态管理不能直接修改,需要使用setstage方法进行更改。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。