Vue 学录 (第一章)

写在前面:分享技术,共同进步,有不足请见谅,相关意见可评论告知 ~

编程路漫漫,学习无止尽!

Vue 引入

Soc (Separation of concerns): 关注点分离原则

HTML + CSS + JS 视图:呈现给用户,刷新后台数据
参考链接

网络通信: axios
页面跳转: vue-router
状态管理: vuex
Vue-UI : ICE

跳转链接
在这里插入图片描述

CSS预处理

拓展
基本思想用一种专门的编程语言,为CSS增加编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行CSS的编码工作。用一种专门的编程语言,进行Web页面样式设计,再通过编译器转化为正常的CSS文件,以供项目使用。

常用的CSS预处理器
1、SASS:基于Ruby,通过服务端处理,功能强大。解析效率高,需要Ruby语言基础

2、LESS:基于 Nodes,通过客户端处理,使用简单。功能比SASS简单,解析效率也低于SASS,但在实际开发中足够。

后端导包工具:Maven
前端导包工具:Webpack

JavaScript框架

1、JQuery: JavaScript框架,简化了DOM操作,缺点是DOM操作太频繁影晌前端性能;对于前端使用它仅仅是为了兼容IE6、7、8

2、Angular: Google收购的前端框架,由Java程序员开发,其特点是将后台的MVC模式迁至前端并增加了模块化开发的理念,与微软合作,采用 TypeScript语法开发;对后台程序员友好,对前端程序员不太友好;最大的缺点是版本迭代不合理(如:1代->2代,除了名字,就是两个东西)

3、React: Facebook出品,一款髙性能的JS前端框架;特点是提岀了新概念【虛拟DOM】用于减少真实DOM操作,在内存中模拟DOM操作,有效的提升了前端渲染效率;缺点是使用复杂,因为需要额外学习JSX语言

4、Vue:渐进式 Java Script框架,所谓渐进式就是逐步实现新特性的意思,如实现模块化开发、路由、状态管理等新特性。其特点是综合了 Angular(模块化)和 React(虚拟DOM)

5、Axios:前端通信框架;因为vue的边界很明确,就是为了处理DOM,所以并不具备通信能力,此时就需要额外使用一个通信框架与服务器交互;当然也可以直接选择使用 jQuery提供的AJAX通信功能

混合开发

主要目的是实现一套代码三端统一(PC、 Android:apk、ios:ipa)并能够调用到设备底层硬件(如:传感器、GPS、摄像头等),打包方式主要有以下两种
云打包: HBuild-> HBuildx, CLoud出品; API Cloud
本地打包: Cordova(前身是 PhoneGap)

后端

在这里插入图片描述

前端为主的MV* 时代

MVC(同步通信为主): Model、View、 Controller
MVP(异步通信为主): Model、View、 Presenter
MVVM(异步通信为主): Model、View、 ViewModel

前后端分离

在这里插入图片描述

Vue启航

在这里插入图片描述

MVVM模式的实现者

1、Model:模型层,在这里表示 JavaScript对象
2、View:视图层,在这里表示DOM(HTML操作的元素)
3、View Model:连接视图和数据的中间件, Vue js就是MVVM中的 ViewModel层的实现者

在MVVM架构中,是不允许数据和视图直接通信的,只能通过 ViewModel来通信而ViewModel就是定义了一个 Observer观察者ViewModel能够观察到数据的变化,并对视图对应的内容进行更新ViewModel能够监听到视图的变化并能够通知数据发生改变.。 Vue. js就是一个MVVM的实现者,他的核心就是实现了DOM监听与数据绑定

Vue CDN

<script src=https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js></script>

Vue 程序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello Vue</title>
</head>
<body>
<!--view 层 模板-->
<div id="app">
    {{message}}
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        // Model 数据
        el:"#app",
        data:{
            message:"hello Vue"
        }
    }) ;
</script>
</body>
</html>

在这里插入图片描述

体现MVVM
在这里插入图片描述
在这里插入图片描述

前端渲染
在这里插入图片描述

基本语法

官网参考链接

绑定事件

在这里插入图片描述
所见 v-bind attribute 被称为指令。指令带有前缀 v-,以表示它们是 Vue 提供的特殊 attribute。它们会在渲染的 DOM 上应用特殊的响应式行为。在这里,该指令的意思是:“将这个元素节点的 title attribute 和 Vue 实例的 message property 保持一致”。

在这里插入图片描述

判断循环

v-if
v-else-if

在这里插入图片描述

双向绑定

参考链接

v-model

可以用v- model指令在表单< input>、< textarea〉及< select>元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。,但v-mode本质是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理

注意:v-model会忽略所有表单元素的 value、 checked、 selected特性的初始值而总是将vue实例的数据作为数据来源。应该通过 JavaScript在组件的data选项中声明初始值(如下为 null)
在这里插入图片描述
在这里插入图片描述

Vue 组件

参考链接

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<div id="app">
    <button-counter></button-counter>
    <button-counter></button-counter>
    <button-counter></button-counter>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script type="text/javascript">
    /*
      组件注册
    */
    Vue.component('button-counter', {
        data: function(){
            return {
                count: 0
            }
        },
        template: '<button @click="handle">点击了{{count}}次</button>',
        methods: {
            handle: function(){
                this.count += 2;
            }
        }
    });
    var vm = new Vue({
        el: '#app',
        data: {

        }
    });
</script>
</body>
</html>

在这里插入图片描述

原文地址:https://www.cnblogs.com/lzhCreate/p/13624416.html