美文网首页H5教程集合
vue-cli脚手架使用

vue-cli脚手架使用

作者: 余生社会 | 来源:发表于2018-01-23 14:37 被阅读3次

    new Vue({

            el:'#app',//要控制的容器

            template:'',//组件调用标签

            components:{App}//注册的组件 名称来自import引入时的名字

    })

    组件嵌套方式

    1,全局注册

            (1).在main.js中import引入

            (2).在new Vue 的上方

                    Vue.component("组件的name",引入时定义的名字);

            (3).在需要的位置用组件中name的名字做标签使用

    2,局部注册

            (1).在需要的父级组件的script内export外,import引入

            (2).在其export的components对象中添加注册,名字是引入时定义的名字

            (3).在需要的位置用组件中name的名字做标签使用

    组件的style上加scoped表示样式作用域

    传值:string number boolean        传值仅仅会在单一操作的组件上发生变化

    引用:array object                            传引用会导致全部的数据变化

    父子属性传值:

    父向子传值:

    1.在子组件的标签上v-bind:自定义属性名=“传值名”,

    2.在子组件内sxport中props:[“自定义属性名”]

    props应写成标准写法:

    props:{

    自定义属性名:{

    type: Array,//数据类型

    required:true, //

    }

    }

    事件传值(子向父传值):

    1.在子组件中定义事件,用this.$emit("自定义的事件名", "传递的内容");

    2.在父级组件中的调用标签上绑定事件v-on:子组件中定义的事件名="父组件中要执行的事件($event)"进行接收;

    3.在父级的methods中定义事件接收

    父级事件名(形参){

    this.要改变的参数名=形参;

    }

    生命周期

        new Vue()实例化vue对象;

    在完成之前会有一个beforeCreate,它仅对事件进行一个配置,这时可以进行一个加载的动画;用此钩子函数;

    之后进入到created,这时候实例化完成,组件创建完成,属性成功绑定,但Dom并没有生成,页面并没有展示出来;这里可以获取对应的一些数据,结束上边钩子的例子;如停止加载动画,准备渲染DOM;

    之后会查看当前有没有el(element)属性,

    有,往下;

    没有,查看有没有$mount(),

    有,往下,

    没有,生命周期结束。

    之后会检查有没有template属性

    有,template中执行一个具体的组件,执行render方法渲染template里对应的内容

    没有,生命周期结束;

    之后beforeMount,编译template方法,在虚拟DOM中执行,页面还是看不到内容

    之后是mounted,beforeMount之后编译的模板放入页面,mounted时模板编译完成,开始挂载;mounted结束页面就会显示出来;如有页面显示出来之后需要做的,放在此方法里

    页面显示完成了,组件也挂载了,此时对项目做一些更改(增删改查);会触发下一个钩子函数Update

        beforeUpdate:当前组件在更新之前的钩子

        updated:组件在更新之后的钩子;此钩子执行之后,页面就是更新之后的样子

    beforeDestroy:组件实例销毁之前;

    distroyed:组件实例销毁之后;

      methods: {},

      beforeCreate: function() {

        alert("组件实例化之前执行的函数");

      },

      created: function() {

        alert("组件实例化完毕,但页面还未显示");

      },

      beforeMount: function() {

        alert("组件挂载前,页面仍未展示,但虚拟Dom已经配置");

      },

      mounted: function() {

        alert("组件挂载后,此方法执行后页面显示");

      },

      beforeUpdate:function(){

        alert("组件更新前,页面仍未更新,但虚拟Dom已经配置");

      },

      updated:function(){

        alert("组件更新后,页面显示更新后的组件");

      },

      beforeDestroy:function(){

        alert("组件销毁前");

      },

      destroyed:function(){

        alert("组件销毁");

      }

    路由和http

    共享网络接口:http://jsonplaceholder.typicode.com/

    安装resource模块 指令:npm install vue-resource --save-dev

    router下的index.js中配置

    引入:

    import Router from 'vue-router'

    import VueResource from 'vue-resource'

    Vue.use(Router)

    Vue.use(VueResource)

    mode: "history", //在router上边使用这个是去除链接上初始的#

    routes: [

        {

          path: '/',      //根路径

          name: 'HelloWorld',

          component: HelloWorld,//此处是引入时的起的名字

          children:[

          {

                  path: '/home',      //路径  嵌套字路由

                  name: 'HelloWorld',

                  component: HelloWorld,//此处是引入时的起的名字

          }

          ]

        }

      ]

    在组件中的钩子函数中请求

      created(){

        this.$http.get("http://jsonplaceholder.typicode.com/users")

            .then((data)=>{

              console.log(data);

              this.users=data.body;

            })

      }

    相关文章

      网友评论

        本文标题:vue-cli脚手架使用

        本文链接:https://www.haomeiwen.com/subject/dtysaxtx.html