专栏首页余生开发vue-cli脚手架使用

vue-cli脚手架使用

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;

        })

  }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ionic3 + 实用

    余生
  • weex之navigator封装为getPath.js

    exports.getPath = function (pathWithoutSuffix, params) { var path = ''; let pl...

    余生
  • 服务器上 nginx 一个ssl证书 一个域名 多个端口

    先弄一个ssl证书 下载nginx配置证书后 在服务器上 nginx安装目录 下的server配置字段中加入

    余生
  • 解密传统组件间通信与React组件间通信

    在React中最小的逻辑单元是组件,组件之间如果有耦合关系就会进行通信,本文将会介绍React中的组件通信的不同方式

    前端迷
  • CreatorPrimer|组件编码心得(上)

    Cocos Creator的核心是组件化,如何编写出高质量的组件代码值得程序员们不断探索,Shawn今天分享一点组件编码的心得供大家参考:“怎样才是一个合格的组...

    张晓衡
  • vuejs组件通信精髓归纳

    父子关系即是组件 A 在它的模板中使用了组件 B,那么组件 A 就是父组件,组件 B 就是子组件。

    张炳
  • 【译】选择Bit.dev构建组件库的15个理由

    2019年的时候,UI组件库在普及度上有了巨大的飞跃。当然这并不多么令人惊奇,因为像Uber、Airbnb、Booking等等公司都在通过共享的UI组件来保证其...

    腾讯IVWEB团队
  • 可视化搭建数据大屏系统的前端实现

    本文首发于政采云前端团队博客:可视化搭建数据大屏系统的前端实现 https://www.zoo.team/article/data-visualization

    政采云前端团队
  • Vue基础总结2

    提示:遇到的问题:当我们还在页面first的时候,页面second还没生成,也就是页面second中的 created中所监听的来自于first中的事件还没有被...

    用户7386338
  • uni组件传值注意

    杨充

扫码关注云+社区

领取腾讯云代金券