zoukankan      html  css  js  c++  java
  • 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>
    
    

    在这里插入图片描述

  • 相关阅读:
    Python什么是二次开发的意义?python在.net项目采用
    斐波那契数
    Java 兑换ObjectC代码
    第18本:《整理的艺术》
    第16本:《视觉繁美:信息可视化方法与案例解析》
    第14本:《李鸿章传》
    第10本:《设计心理学》
    第17本:《代码的未来》
    第15本:《视不可当----信息图与可视化传播》
    第13本:《富爸爸,穷爸爸》
  • 原文地址:https://www.cnblogs.com/lzhCreate/p/13624416.html
Copyright © 2011-2022 走看看