• vue中的生命周期


    实例生命周期

    每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化阶段、运行中阶段、销毁阶段

    每个Vue实例在被创建之前都要经过一系列的初始化过程。例如需要设置数据监听、编译模板、挂载实例到DOM、数据变化时更新等。同时这个过程中也会运行一些叫做生命周期钩子的函数,给与用户机会在一些特定的场景下添加自己的代码

    
        $.mount():若vue实例在实例化中没有el选项,则处于未挂载状态,可用$.mount手动地挂载一个未挂载的实例。
        
        $.destory():完全销毁一个实例。清理它与其他实例的连接,解绑它的全部指令及事件监听器。
        ---
    
    生命周期的过程阶段(钩子函数):
    1. beforeCreate:实例、组件通过new Vue()创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,此时,数据还没有挂载,只是一个空壳,无法访问到数据和真实的dom,一般不做操作。
    2. created:挂载数据、绑定时间等等,然后执行created函数,此时可以用到数据,也可以更改数据,更改数据时不会触发updated函数,这是在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取
    3. beforeMount:然后开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在该函数中虚拟dom已经创建完成,马上就要渲染。此时也可以更改数据,不会触发updated,这是渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取
    4. mounted:接下来开始render,渲染出真实dom,然后执行mounted钩子函数,此时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已挂载,此时可以操作真实dom等等...
    5. beforeUpdate:当组件或实例的数据更改后,会立即执行beforeUpdate,然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染,一般不做其他操作
    6. updated:当更新完成后,执行updated,数据已经更改完成,dom也重新render完成,可以操作更新后的虚拟dom
    7. beforeDestory:当经过某种途径调用$destory方法后,立即执行beforeDestory,一般做这些操作,比如:清除计时器、清除非指令绑定的事件等等
    8. destoryed:组件的数据绑定。监听...销毁后只剩下空壳,此时执行destoryed,也可以做一些例如清除计时器、清除非指令绑定的事件等操作。
    vue-cli脚手架
    
    由官方提供的,基于webpack的脚手架工具:vue-cli
    
    

    安装方法:

    
    全局安装vue-cli:npm install --global vue-cli
    
    创建一个基于webpack模板的新项目:vue init type(webpack) my-project(注:type是定义模板的类型)
    
    安装依赖:cd my-priject
    
             npm install
             
             npm start(npm run dev)
             
    

    模板类型:

    simple:对应一个很简单的html文件

    webpack:在配置的时候可以选择是否需要vue-router

    注意的是,模板创建的时候会询问使用需要使用ESLINT来标准化我们的代码

    脚手架中:src文件夹是开发目录,build文件夹负责打包文件,config文件夹是负责配置(内置服务器的端口、proxy代理)

    
    static文件夹是静态目录,test文件夹是测试
        
    src文件夹的main.js是入口文件,在里面创建了一个根实例,根实例的模板是组件App的模板,其他的组件都在根组件中进行嵌套实现。
    
    

    每一个组件都是一个单文件组件,这种文件会被webpack利用vue-loader的工具进行编译

    
    template部分负责写组件的模板内容,script中创建组件。style里写组件的样式
    
    assets目录也是静态目录,在这个目标中的文件我们使用相对路径引入,而static目录中的文件使用绝对地址来引入
    
    在style上添加scoped能使这个style里的样式只作用于当前的组件,不加scoped就是全局样式
    
    习惯于在App.vue根组件的style里写全局样式,而每个组件的style最好都是局部的
    

    原文地址:https://segmentfault.com/a/1190000012523310

  • 相关阅读:
    (转)ELK Stack 中文指南--性能优化
    (转)如何在CentOS / RHEL 7上安装Elasticsearch,Logstash和Kibana(ELK)
    (转)GlusterFS 01 理论基础,企业实战,故障处理
    (转)CentOS7.4环境下搭建--Gluster分布式集群存储
    (转)DB2性能优化 – 如何通过调整锁参数优化锁升级
    (转)架构师之DNS实战CentOS7VSCentOS6
    PHP:计算文件或数组中单词出现频率
    [获取行数]php读取大文件提供性能的方法,PHP的stream_get_line函数读取大文件获取文件的行数的方...
    Windows下配置环境变量和需不需要重启问题
    CENTOS 下安装APK反编译工具 APKTOOL
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9961788.html
Copyright © 2020-2023  润新知