zoukankan      html  css  js  c++  java
  • 1-vue初识

    1、初识vue

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


    Vue是一个渐进式的框架,什么是渐进式的呢?

        渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,带来更丰富的交互体验。
         或者如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及其生态系统。
         比如Core+Vue-router+Vuex,也可以满足你各种各样的需求。


    Vue有很多特点和Web开发中常见的高级功能:

        解耦视图和数据
         可复用的组件
         前端路由技术
         状态管理
         虚拟DOM


    Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统';


    安装:

      方式1、CDN引入

      方式2、下载和引入

      方式3、NPM安装


    小案例:

    <body>
    <script src="../js/vue.js"></script>  //引入vue
    
    <div id="app">{{message}}</div>
    <script>
        const app1 = new Vue({
            el: '#app',  //挂载要管理的元素
            data: {  //定义数据
                message: 'hello'
            }
        })
    </script>
    
    </body>

    对以上小案例的分析:

    代码做了什么事情?
    我们来阅读JavaScript代码,会发现创建了一个Vue对象。
    创建Vue对象的时候,传入了一些options:{}
      {}中包含了el属性:该属性决定了这个Vue对象挂载到哪一个元素上,很明显,我们这里是挂载到了id为app的元素上
      {}中包含了data属性:该属性中通常会存储一些数据
        这些数据可以是我们直接定义出来的,比如像上面这样。
        也可能是来自网络,从服务器加载的。
    
    浏览器执行代码的流程:
      执行到10~13行代码显示出对应的HTML
      执行第16行代码创建Vue实例,并且对原HTML进行解析和修改。
    
    并且,目前我们的代码是可以做到响应式的。
    



    2、vue列表的展示

    <body>
    <div id="app">
        {{message}}
        <ul>
            <li v-for="i in book">   //v-for
                {{i}}
            </li>
        </ul>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: 'hello',
                book: ['book1','book2','book3']
            }
        })
    </script>
    
    </body>


    分析:

    现在,我们来展示一个更加复杂的数据:数据列表。
      比如我们现在从服务器请求过来一个列表
      希望展示到HTML中。
    
    HTML代码中,使用v-for指令
      该指令我们后面会详细讲解,这里先学会使用。
    
    是不是变得So Easy,我们再也不需要在JavaScript代码中完成DOM的拼接相关操作了
    
    而且,更重要的是,它还是响应式的。
      也就是说,当我们数组中的数据发生改变时,界面会自动改变。
    
    


    3、计数器案例

    image

    <body>
    <div id="app">
        <h3>当前计数:{{counter}}</h3>
    <!--    <button v-on:click="counter++">+</button>-->
    <!--    <button v-on:click="counter&#45;&#45;">-</button>-->
        <button v-on:click="add">+</button>
        <button v-on:click="sub">+</button>
    </div>
    <script src="../js/vue.js"></script>
    
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                counter: 0
            },
            methods: {   
                add: function () {
                    this.counter++
                },
                sub: function () {
                    this.counter--
                }
    
            }
        })
    </script>
    </body>


    分析:

    现在,我们实现了一个小的计数器
    点击 + 计数器+1
    点击 -  计数器 -1
    这里,我们使用新的指令和属性了
    新的属性:methods,该属性用于在Vue对象中定义方法。
    新的指令:click, 该指令用于监听某个元素的点击事件,并且需要指定当发生点击时,执行的方法(方法通常是methods中定义的方法)
    你可能会疑惑?
    这些click是什么东西?
    Vue对象中又是定义el/data/methods,到底都有哪些东西可以定义,以及它们的作用是什么?
    这些疑惑在后续学习中都会一一解开。
    


    4、vue中的MVVM

    关于mvvm:  

    来自维基百科:https://zh.wikipedia.org/wiki/MVVM

    MVVM(Model–view–viewmodel)是一种软件架构模式。

    MVVM有助于将图形用户界面的开发与业务逻辑或后端逻辑(数据模型)的开发分离开来,这是通过置标语言或GUI代码实现的。

    MVVM的视图模型是一个值转换器,这意味着视图模型负责从模型中暴露(转换)数据对象,以便轻松管理和呈现对象。在这方面,

    视图模型比视图做得更多,并且处理大部分视图的显示逻辑。视图模型可以实现中介者模式,组织对视图所支持的用例集的后端逻辑的访问。


    image


    View层:
      视图层
      在我们前端开发中,通常就是DOM层。
      主要的作用是给用户展示各种信息。
    Model层:
      数据层。
      数据可能是我们固定的死数据,更多的是来自我们服务器,从网络上请求下来的数据。
      在我们计数器的案例中,就是后面抽取出来的obj,当然,里面的数据可能没有这么简单。
    VueModel层:
      视图模型层。
      视图模型层是View和Model沟通的桥梁。
      一方面它实现了Data Binding,也就是数据绑定,将Model的改变实时的反应到View中。
      另一方面它实现了DOM Listener,也就是DOM监听,当DOM发生一些事件(点击、滚动、touch等)时,
      可以监听到,并在需要的情况下改变对应的Data。
    


    5、创建Vue实例传入的options

    我们在创建Vue实例的时候,传入了一个对象options。

    n这个options中可以包含哪些选项呢?

    详细解析: https://cn.vuejs.org/v2/api/#选项-数据


    目前掌握这些选项:

    el:

        类型:string | HTMLElement

        作用:决定之后Vue实例会管理哪一个DOM。

    data:

        类型:Object | Function (组件当中data必须是一个函数)

        作用:Vue实例对应的数据对象。

    methods:

        类型:{ [key: string]: Function }

        作用:定义属于Vue的一些方法,可以在其他地方调用,也可以在指令中使用。


    6、Vue的生命周期

    image

    image

  • 相关阅读:
    BZOJ3884 上帝与集合的正确用法 【欧拉定理】
    BZOJ4872 [六省联考2017]分手是祝愿 【期望dp】
    BZOJ4650 [NOI2016]优秀的拆分 【后缀数组】
    BZOJ1562 [NOI2009]变换序列 【KM算法】
    BZOJ2657 [Zjoi2012]旅游(journey) 【树的直径】
    BZOJ3999 [TJOI2015]旅游 【树剖 + 线段树】
    BZOJ3997 [TJOI2015]组合数学 【Dilworth定理】
    BZOJ4823 [Cqoi2017]老C的方块 【最小割】
    坐标系统
    利用键盘左右键使图像左右移动,上下键使图像的两个纹理可见度比例上下调整
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/13522014.html
Copyright © 2011-2022 走看看