• vue 2实战系列 —— 复习Vue


    复习Vue

    近期需要接手 vue 2的项目,许久未写,语法有些陌生。本篇将较全面复习 vue 2。

    Tip: 项目是基于 ant-design-vue-pro

    ant-design-vue-pro

    由于 cms 是基于这个项目开发的,所以笔者就将其下载下来。

    下载后运行

    // 按照依赖
    yarn install
    
    // 本地启动
    yarn run serve
    

    根据提示输入 admin/admin 即可登录。

    全局概览

    直接通过script引入vue

    就像这样:

    
        <div id='app'>div>
        
        <script type="text/x-template" id="tpl">
            <section>
                {{ message }}
                <p v-if="seen">现在你看到我了p>
            section>
        script>
    
        <script>
        // VM
        var app = new Vue({
            el: '#app',
            template: '#tpl',
            // M
            data: {
                message: 'Hello Vue!',
                seen: true
            }
        })
        script>
    
    

    有以下几点需要注意:

    • vue 是一个 mvvm 的框架,分数据模型M视图V视图模型VM三部分
    • Vue 实例作为 ViewModel,充当连接 Model 和 View 的桥梁。它负责将 Model 的数据绑定到 View 上,并且在数据发生变化时更新 View。因此,整个 Vue 实例是 ViewModel
    • VM部分主要是new Vue中的实参,该对象有 template、data
    • 模板中的 seen 属性直接取自 Vue 实例中的 data,没有添加什么 this
    • {{ message }} 属于模板语法,用于插入值。

    将上述示例转成单文件组件。就像这样:

    
    
    <script>
    // es6 导出模块语法
    export default {
      data() {
        return {
          message: 'Hello Vue!',
          seen: true,
        };
      },
    };
    script>
    
    <style scoped>
    section {
      color: red;
    }
    style>
    

    单文件组件通常由三部分组成:template、script、style。

    工作中通常是单文件组件开发,相对于通过script引入vue的方式,其处理复杂项目更加方便。

    前面我们知道单文件组件中的 template、script、style 会被 vue-loader 解析,然后交给不同的 loader 处理。

    单文件组件在写法上和script引入vue的方式有差异。比如在单文件组件中 data 属性是一个方法,里面返回一个对象,而在script引入vue中,data选项可以直接是一个对象,而不需要通过函数返回。

    template

    vue 单文件组件中 template 有两种含义:

    • 根级的