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

原文地址:https://www.cnblogs.com/weiyiming007/p/13522014.html