zoukankan      html  css  js  c++  java
  • 【Vue】Re01 理论概念和入门上手

    一、Vue概述

    什么是渐进式?
    1、把Vue作应用的一部分嵌套项目中
    2、如果完全抛弃其他组件和框架,Vue又具有丰富的生态和库莱支持
    3、Core + Router + VueX 满足项目绝大多数的需求
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    特点和特性:

    1、解耦视图与数据
    2、可复用的组件
    3、前端路由技术
    4、状态管理
    5、虚拟Dom
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Vue 安装

    1、使用cdn引用
    生产版本和开发版本的区别:
    开发版本:
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    保留代码格式,保留警告、打印、提示

    所以文件大小较大
    生产版本:
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    格式压缩,移除所有的警告、打印、提示

    文件大小被压缩到很小

    2、下载到本地进行引用
    开发:
    https://vuejs.org/js/vue.js
    生产:

    https://vuejs.org/js/vue.min.js

    3、使用NPM安装

    通过webpack & CLI的使用进行安装
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    原始的JS开发:【编程范式 : 命令式编程】

    1、创建一个div标签
    2、设置该标签的id值为app
    3、在js中定义message变量

    4、把message变量放置在div标签中进行显示

    Vue的开发:【编程范式 :声明式编程】
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    方法和函数的区别

    Method
    Function
    方法一般被实例所调用,声明定义在类中

    函数不具有实例特性,直接声明直接调用

    二、上手案例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <!-- 界面的部分只需要处理HTML标签,不需要更改Mustache模板 -->
    <div id="app">
        <h3>{{message}}</h3>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script type="text/javascript">
        const vm = new Vue({
            el : '#app', // 绑定挂载的元素
            data : { // 定义和声明数据
                message : '哈哈哈哈' /* 在这里处理数据 实现页面和数据的解耦 */ /* 另外数据更新也不需要操作Dom实现,直接就能进行重新渲染 */
            }
        });
    </script>
    
    </body>
    </html>

    展示列表:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <div id="app">
        <h3>{{message}}</h3>
        <p>{{movies}}</p>
        <ul>
            <li v-for="movie in movies">{{movie}}</li>
        </ul>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script type="text/javascript">
        const vm = new Vue({
            el : '#app',
            data : {
                message : 'sda',
                movies : [
                    '大话西游',
                    '星际穿越',
                    '盗梦空间',
                    '1911'
                ]
            }
        });
    </script>
    
    </body>
    </html>

    计数器案例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <!-- 列表显示 -->
    <div id="vue-application">
        <h3>当前计数值 : {{varCount}} </h3>
        <p>
            <button @click="increase">增加1</button>
            <button @click="decrease">减少1</button>
        </p>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script type="text/javascript">
        let vueObj = new Vue({
            el : '#vue-application' ,
            data : {
                varCount : 0
            },
            methods : {
                increase() {
                    // 对计数器的增加进行上限处理
                    if (this.varCount === 10) {
                        alert('已达到上限'); return;
                    }
                    this.varCount ++
                },
                decrease() {
                    // 对计数器的增加进行下限处理
                    if (this.varCount === 0) {
                        alert('已达到下限'); return;
                    }
                    this.varCount --
                }
            }
        });
    </script>
    
    </body>
    </html>

    三、理解MVVM

    MVVM = Model + View + ViewModel
    
    Model层:
    数据层
    来自服务请求提供的数据
    
    View层:
    视图层
    前端开发中Dom结构即视图的显现
    主要用来给用户呈现数据处理后的信息
    
    ViewModel层:
    视图模型层
    VM桥接了 View + Model,是两者沟通建立的桥梁
    实现了Data-binding也就是数据绑定

    四、Vue实例生命周期

  • 相关阅读:
    【14】算法 (哈希)
    【1】c++11 智能指针
    【13】算法 (平衡二叉树AVL、红黑色RBT、B+树、B-树详解)
    JavaScript 基础四
    JavaScript 基础三
    JavaScript 基础二
    遍历数组,对象和JSON
    创建对象的两种方式
    CSS3动画旋转——(图片360°旋转)
    产品运营和数据分析
  • 原文地址:https://www.cnblogs.com/mindzone/p/13877021.html
Copyright © 2011-2022 走看看