Vue急速入门

前端目前形式

前端发展史

1.HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) -> 后端嵌入模板语法 -> 后端渲染完数据 -> 返回数据给前端 -> 在浏览器中查看

2.Ajax的出现 -> 后台发送异步请求,Render+Ajax混合

3.单用Ajax(加载数据,DOM渲染页面):前后端分离的雏形

4.Angular框架的出现(1个JS框架):出现了“前端工程化”的概念(前端也是1个工程、1个项目)

5.ReactVue框架:当下最火的2个前端框架(Vue:国人喜欢用,React:外国人喜欢用)

6.移动开发(Android+IOS) + Web(Web+微信小程序+支付宝小程序) + 桌面开发(Windows桌面):前端 -> 大前端

7.一套代码在各个平台运行(大前端):谷歌Flutter(Dart语言:和Java很像)可以运行在IOS、Android、PC端

8.在Vue框架的基础性上 uni-app一套编码 编到10个平台

9.在不久的将来 ,前端框架可能会一统天下

Vue介绍/基本使用

Vue简介
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架

与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用

Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合
渐进式框架
我们可以一点点的使用Vue,也可以部分使用Vue,也可以整个项目都使用Vue
Vue特点
  • 易用

通过HTML,CSS,JS 构建应用

  • 灵活

不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩

  • 高效

    20kB min+gzip 运行大小

    超快虚拟 DOM

    最省心的优化

M-V-VM思想

m-v-vm介绍

img

MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,是一种事件驱动编程方式
  • Model :vue对象的data属性里面的数据,这里的数据要显示到页面中
  • View :vue中数据要显示的HTML页面,在vue中,也称之为“视图模板” (HTML+CSS)
  • ViewModel:vue中编写代码时的vm对象,它是vue.js的核心,负责连接 View 和 Model数据的中转,保证视图和数据的一致性(双向数据绑定:JS中变量变了,HTML中数据也跟着改变)
MVVM的特性
  • 低耦合视图(View)可以独立于Model变化和修改,1个ViewModel可以绑定到不同的View上,当View变化的时候 Model可以不变,当Model变化的时候 View也可以不变
  • 可复用:可以把一些视图逻辑放在1个ViewModel中,让很多View重用这端视图的逻辑(以此减少代码冗余)
  • 独立开发开发人员可以专注于业务逻辑数据的开发(ViewModel),设计人员可以专注于页面设计
  • 可测试:界面元素是比较难以测试的,而现在的测试可以针对ViewModel来编写

组件化开发、单页面开发

组件化开发

组件是Vue.js中重要思想

​ 它提供了一种抽象, 我们可以开发出一个独立可复用的小组件来构造我们的应用组件
​ 可以扩展 HTML 元素,封装可重用的代码
​ 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树
组件化思想应用

​ 有了组件化的思想, 我们之后开发中就要充分的利用它
尽可能将页面拆分成一个个小的, 可复用的组件
这样让我们代码更方便组织和管理, 并且扩展性也强

单页面开发

​ 只需要1个页面,结合组件化开发来替换页面中的内容

页面的切换只是组件的替换,页面还是只有1个index.html

版本

1.X:使用得较少

2.X:普遍使用

3.X:正常使用

引入方式
cdn导入
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

下载后导入

其实就是直接在浏览器中打开

https://cdn.jsdelivr.net/npm/vue/dist/vue.js,

然后复制下来,创建一个js文件再粘贴进去

<script src="js/vue.js"></script>
简单使用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue的简单使用</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
</head>
<body>

<div id="box">
    {{name}}
</div>

</body>
<script>
    let vm = new Vue({
        el: '#box', // 在box这个div中可以写 vue的语法
        data: {
            name: 'Hello World'
        }
    })
</script>
</html>
//
通过 let vm = new Vue({

el:'指定vue控制标签',

data:'数据'

})

Vue基础

插值语法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>插值</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
</head>
<body>

<div id="box">
    <ul>
        <li>字符串:{{name}}</li>
        <li>数值:{{age}}</li>
        <li>数组:{{list1}}</li>
        <li>对象:{{obj1}}</li>
        <li>字符串:{{link1}}</li>
        <li>运算:{{10+20+30+40}}</li>
        <li>三目运算符:{{10>20?'是':'否'}}</li>
    </ul>
</div>

</body>
<script>
    let vm = new Vue({
        el: '#box', // 在box这个div中可以写 vue的语法
        data: {
            name: 'Darker', // 字符串
            age: 18, // 数值
            list1: [1,2,3,4],   // 数组
            obj1: {name: 'Darker', age: 19}, // 对象
            link1: '<a href="https://www.baidu.com">百度一下 你就知道</a>'
        }
    })
</script>
</html>

image-20230212204518286

a标签中的文本内容会被v-html直接替换成link1 中的内容

如果是v-text就会显示文本内容

Vue文本指令
v-html	让HTML渲染成页面
v-text	标签内容显示js变量对应的值
v-show	放1个布尔值:为真 标签就显示;为假 标签就不显示
v-if	放1个布尔值:为真 标签就显示;为假 标签就不显示

v-show与 v-if的区别:

v-show:标签还在,只是不显示了(display: none)
v-if:直接操作DOM,删除/插入 标签
属性指令
指令 释义
v-bind 直接写js的变量或语法(不推荐)
: 直接写js的变量或语法(推荐)
Style和Class
语法:
:属性名=js变量/js语法
	:class = 'js变量、字符串、js数组'