zoukankan      html  css  js  c++  java
  • vue组件基本结构及各个生命周期

    一个vue组件主要包括3个部分:界面展示代码template、业务实现代码script、界面布局代码style

    vue组件基本结构:Test.vue

    <template>
        <div class="class_1">
          <h2>{{msg}}</h2>
          这是一个fry VueComponentTest
        </div>
    </template>
    
    <script>
      export default {
        name: 'Test',
        data () {
          return {
            msg: 'Welcome to Your Vue.js App'
          }
        }
      }
    </script>
    
    <style scoped>
      .class_1{
        color: red;
      }
    </style>

    script基本结构及各个生命周期

    <script>
     
    export default {
     
      name: "App",
     
      data() {//数据定义 函数方法,返回数据的方式
     
        return {};
     
      },
     
      methods: {
     
        // 组件的方法
     
      },
     
      watch: {
     
        // watch监听方法,擅长处理的场景:一个数据影响多个数据 
    watch是去监听一个值的变化,然后执行相对应的函数。
     
      },
     
      computed: {
     
        // computed擅长处理的场景:一个数据受多个数据影响 
    computed是计算属性,也就是依赖其它的属性计算所得出最后的值
     
      },
     
      beforeCreate () {
     
        // 在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。
     
      },
     
      created () {
     
        // (在实例创建完成后被立即调用。实例已经创建完成之后被调用。
    在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算,
     watch/event 事件回调。然而,挂载阶段还没开始,
    $el 属性目前不可见。初始化数据请求写这里
     
      },
     
      beforeMount () {
     
        // 在挂载开始之前被调用:相关的 render 函数首次被调用。
     
      },
     
      mounted () {//页面初始化方法
     
        // 编译好的HTML挂载到页面完成后执行的事件钩子
     初始化数据除非有依赖dom的放在mounted()里面,加个nextTick
     
        // el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。
     
        // 此钩子函数中一般会做一些ajax请求获取数据进行数据初始化
     
        console.log("Home done");
     
      },
     
      beforeUpdate () {
     
        // 数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。 
    你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。
     // 只有更新和模板发生关联的数据才会触发这个钩子
                    // 和模板绑定的数据更新之前
     
      },
     
      updated () {
     
        // 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
     
        // 当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。
    然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。
     
        // 该钩子在服务器端渲染期间不被调用。
     
      },
     
      beforeDestroy () {
     
        // 实例销毁之前调用。在这一步,实例仍然完全可用。一般用于清除定时器
        //$once来监听定时器,在beforeDestroy钩子可以被清除。
        this.$once('hook:beforeDestroy', () => {            
        clearInterval(timer);   })
     
      },
     
      destroyed () {
     
        // Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,
    所有的事件监听器会被移除,所有的子实例也会被销毁。 该钩子在服务器端渲染期间不被调用。
     
      }
     
    };
     
    </script>

    传送门 :--->    视屏--->

  • 相关阅读:
    [Web 前端] CSS 盒子模型,绝对定位和相对定位
    [Android Pro] 跨平台反编译工具 jadx (ubuntu亲测 可用)
    [Web 前端] Jquery 复制元素,并修改属性, 追加到另一个元素后面
    [Web 前端 ] Jquery attr()方法 获取或修改 对象的属性值
    [Web 前端] Jquery实现可直接编辑的表格
    [Web 前端] td长度固定,内容过长,超过部分用省略号代替
    [Network] okhttp3与旧版本okhttp的区别分析
    [Android Pro] AndroidStudio IDE界面插件开发(进阶篇之Editor)
    graph embedding 使用方法
    win10 'make' 不是内部或外部命令
  • 原文地址:https://www.cnblogs.com/JonaLin/p/12580821.html
Copyright © 2011-2022 走看看