加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VUE系列二:vue基础

发布时间:2020-12-16 23:19:57 所属栏目:百科 来源:网络整理
导读:一、组件嵌套 1. 新建一个组件Users.vue ="user in users" 2. 全局注册组件 2.1. 在main.js里面引入组件Users.vue Vue from 'vue' App from './App' = span style="color: #008000"// span style="color: #008000"全局注册组件Users.vue span style="color:

一、组件嵌套

1. 新建一个组件Users.vue

2. 全局注册组件

2.1. 在main.js里面引入组件Users.vue

Vue from 'vue' App from './App' =

<span style="color: #008000">//<span style="color: #008000">全局注册组件Users.vue
<span style="color: #ff0000">Vue.component("users",Users);

<span style="color: #008000">/<span style="color: #008000"> eslint-disable no-new <span style="color: #008000">/
<span style="color: #0000ff">new Vue({ <span style="color: #008000">//<span style="color: #008000">实例化一个vue对象
el: '#app',<span style="color: #008000">//<span style="color: #008000">index.html的根元素app
components: { App },<span style="color: #008000">//<span style="color: #008000">注册根组件App.vue才能使用
template: ''<span style="color: #008000">//<span style="color: #008000">VUE模板使用,可以是组件、html标签等
})

2.2. 在根组件App.vue里面使用组件users

<span style="color: #008000">//<span style="color: #008000">2. 行为:处理逻辑

<span style="color: #008000">//<span style="color: #008000">3. 样式:解决样式

3、局部注册组件

3.1. 删除main.js里面注册的全局组件users

3.2. 在根组件app.vue里面局部注册和使用组件

<span style="color: #008000">//<span style="color: #008000">2. 行为:处理逻辑

<span style="color: #008000">//<span style="color: #008000">3. 样式:解决样式

4、页面呈现效果

?二、组件CSS的作用域

1. 分别在在组件App.vue和Users.vue里面定义一个h1的样式

App.vue

App //2. 行为:处理逻辑
<span style="color: #0000ff"><
<span style="color: #800000">script
<span style="color: #0000ff">>

<span style="background-color: #f5f5f5; color: #008000">//
<span style="background-color: #f5f5f5; color: #008000">局部注册组件Users.vue

<span style="background-color: #f5f5f5; color: #000000">import Users from
<span style="background-color: #f5f5f5; color: #000000">'
<span style="background-color: #f5f5f5; color: #000000">./components/Users
<span style="background-color: #f5f5f5; color: #000000">'
<span style="background-color: #f5f5f5; color: #008000">//
<span style="background-color: #f5f5f5; color: #008000">导入组件Users.vue

<span style="background-color: #f5f5f5; color: #000000">
export
<span style="background-color: #f5f5f5; color: #0000ff">default
<span style="background-color: #f5f5f5; color: #000000"> {
name:
<span style="background-color: #f5f5f5; color: #000000">'
<span style="background-color: #f5f5f5; color: #000000">App
<span style="background-color: #f5f5f5; color: #000000">'
<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">组件App.vue的名字
<span style="background-color: #f5f5f5; color: #000000"> components: {
<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">users<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000"> : Users <span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">注册组件Users.vue才能使用
<span style="background-color: #f5f5f5; color: #000000"> }
}
<span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">><span style="color: #000000">

//3. 样式:解决样式
<span style="color: #0000ff"><<span style="color: #800000">style<span style="color: #0000ff">><span style="color: #ff0000"><span style="background-color: #f5f5f5">
h1
<span style="background-color: #f5f5f5">{<span style="background-color: #f5f5f5">
color<span style="background-color: #f5f5f5">:<span style="background-color: #f5f5f5">purple<span style="background-color: #f5f5f5">;
<span style="background-color: #f5f5f5">}

<span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

Users.vue

users

<span style="color: #0000ff"></<span style="color: #800000">div<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">template<span style="color: #0000ff">>

<span style="color: #0000ff"><<span style="color: #800000">script<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #000000">
export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> {
name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">users<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,data () {
<span style="background-color: #f5f5f5; color: #0000ff">return<span style="background-color: #f5f5f5; color: #000000"> {
users:[<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">henry<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">bucky<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">emily<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">]
}
}
}
<span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">>

<span style="color: #008000">
<span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #0000ff">><span style="color: #ff0000"><span style="background-color: #f5f5f5">
h1
<span style="background-color: #f5f5f5">{<span style="background-color: #f5f5f5">
color<span style="background-color: #f5f5f5">:<span style="background-color: #f5f5f5"> green<span style="background-color: #f5f5f5">;
<span style="background-color: #f5f5f5">}

<span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

查看页面效果可以发现App.vue里面的h1的样式被Users.vue里面的样式给覆盖了

?那么我们要他们各自使用自己的h1的样式怎么办呢?

我分别给他们加上scoped就可以了

?App.vue的样式:

?Users.vue的样式:

?页面效果:

三、属性传值props(父组件把数据传递给子组件)

把父组件App.vue的数据传递给子组件Users.vue使用

App.vue

App //2. 行为:处理逻辑
<span style="color: #0000ff"><
<span style="color: #800000">script
<span style="color: #0000ff">>

<span style="background-color: #f5f5f5; color: #008000">//
<span style="background-color: #f5f5f5; color: #008000">局部注册组件Users.vue

<span style="background-color: #f5f5f5; color: #000000">import Users from
<span style="background-color: #f5f5f5; color: #000000">'
<span style="background-color: #f5f5f5; color: #000000">./components/Users
<span style="background-color: #f5f5f5; color: #000000">'
<span style="background-color: #f5f5f5; color: #008000">//
<span style="background-color: #f5f5f5; color: #008000">导入组件Users.vue

<span style="background-color: #f5f5f5; color: #000000">
export
<span style="background-color: #f5f5f5; color: #0000ff">default
<span style="background-color: #f5f5f5; color: #000000"> {
name:
<span style="background-color: #f5f5f5; color: #000000">'
<span style="background-color: #f5f5f5; color: #000000">App
<span style="background-color: #f5f5f5; color: #000000">'
<span style="background-color: #f5f5f5; color: #000000">,
<span style="background-color: #f5f5f5; color: #008000">//
<span style="background-color: #f5f5f5; color: #008000">组件App.vue的名字

<span style="background-color: #f5f5f5; color: #000000"> components: {
<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">users<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000"> : Users <span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">注册组件Users.vue才能使用
<span style="background-color: #f5f5f5; color: #000000"> },<span style="color: #ff0000">data () {
<span style="color: #ff0000"><span style="background-color: #f5f5f5">return<span style="background-color: #f5f5f5"> {
people:[<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">henry<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">,<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">bucky<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">,<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">emily<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5; color: #000000"><span style="color: #ff0000">]
}
}
}
<span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">><span style="color: #000000">

//3. 样式:解决样式
<span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
h1
<span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff">purple<span style="background-color: #f5f5f5; color: #000000">;
<span style="background-color: #f5f5f5; color: #000000">}
<span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

?Users.vue

users
  • <span style="color: #0000ff"></<span style="color: #800000">div<span style="color: #0000ff">>
    <span style="color: #0000ff"></<span style="color: #800000">template<span style="color: #0000ff">>

    <span style="color: #0000ff"><<span style="color: #800000">script<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #000000">
    export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> {
    name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">users<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,<span style="color: #ff0000"><span style="background-color: #f5f5f5">//<span style="background-color: #f5f5f5"> props:["users"],//获取父组件传递过来的users
    <span style="background-color: #f5f5f5"> props:{
    users:{
    type:Array,required:<span style="background-color: #f5f5f5">true
    <span style="background-color: #f5f5f5; color: #000000"><span style="color: #ff0000">
    }
    },

    data () {
    <span style="background-color: #f5f5f5; color: #0000ff">return<span style="background-color: #f5f5f5; color: #000000"> {

    }

    }
    }
    <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">>

    <span style="color: #008000">
    <span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
    h1
    <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
    color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> green<span style="background-color: #f5f5f5; color: #000000">;
    <span style="background-color: #f5f5f5; color: #000000">}
    <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

  • ?页面效果:

    ?四、事件传值(子组件把数据传递给父组件)

    ?在子组件Users.vue的方法changeTitle里面注册一个事件titleChanged并传递一个参数值:"子向父传值"

    <span style="color: #0000ff"></<span style="color: #800000">div<span style="color: #0000ff">>
    <span style="color: #0000ff"></<span style="color: #800000">template<span style="color: #0000ff">>

    <span style="color: #008000"><!--<span style="color: #008000">

    传值: string、number、boolean
    传引用:Array、Object

    <span style="color: #008000">-->
    <span style="color: #0000ff"><<span style="color: #800000">script<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #000000">
    export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> {
    name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">users<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000"> props:["users"],//获取父组件传递过来的users
    <span style="background-color: #f5f5f5; color: #000000"> props:{
    users:{
    type:Array,required:<span style="background-color: #f5f5f5; color: #0000ff">true<span style="background-color: #f5f5f5; color: #000000">
    }
    },data () {
    <span style="background-color: #f5f5f5; color: #0000ff">return<span style="background-color: #f5f5f5; color: #000000"> {

    }

    },methods : {
    <span style="color: #ff0000">changeTitle : <span style="color: #ff0000"><span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    <span style="background-color: #f5f5f5">//<span style="background-color: #f5f5f5">注册一个事件titleChanged
    <span style="background-color: #f5f5f5">this<span style="background-color: #f5f5f5">.$emit(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">titleChanged<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">,<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">子向父传值<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5; color: #000000"><span style="color: #ff0000">);
    }

    }
    }
    <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">>

    <span style="color: #008000">
    <span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
    h1
    <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
    width<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 1000px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    height<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 100px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    background-color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> aqua<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> green<span style="background-color: #f5f5f5; color: #000000">;
    <span style="background-color: #f5f5f5; color: #000000">}
    <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

    在父组件里面实现事件titleChanged

    v-on:titleChangedApp //2. 行为:处理逻辑
    <span style="color: #0000ff"><
    <span style="color: #800000">script
    <span style="color: #0000ff">>

    <span style="background-color: #f5f5f5; color: #008000">//
    <span style="background-color: #f5f5f5; color: #008000">局部注册组件Users.vue

    <span style="background-color: #f5f5f5; color: #000000">import Users from
    <span style="background-color: #f5f5f5; color: #000000">'
    <span style="background-color: #f5f5f5; color: #000000">./components/Users
    <span style="background-color: #f5f5f5; color: #000000">'
    <span style="background-color: #f5f5f5; color: #008000">//
    <span style="background-color: #f5f5f5; color: #008000">导入组件Users.vue

    <span style="background-color: #f5f5f5; color: #000000">
    export
    <span style="background-color: #f5f5f5; color: #0000ff">default
    <span style="background-color: #f5f5f5; color: #000000"> {
    name:
    <span style="background-color: #f5f5f5; color: #000000">'
    <span style="background-color: #f5f5f5; color: #000000">App
    <span style="background-color: #f5f5f5; color: #000000">'
    <span style="background-color: #f5f5f5; color: #000000">,data () {
    <span style="background-color: #f5f5f5; color: #0000ff">return
    <span style="background-color: #f5f5f5; color: #000000"> {
    people:[
    <span style="background-color: #f5f5f5; color: #000000">"
    <span style="background-color: #f5f5f5; color: #000000">henry
    <span style="background-color: #f5f5f5; color: #000000">"
    <span style="background-color: #f5f5f5; color: #000000">,
    <span style="background-color: #f5f5f5; color: #000000">"
    <span style="background-color: #f5f5f5; color: #000000">emily<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">],title : <span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">父组件的<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">
    }
    },methods : {
    <span style="color: #ff0000">updateTitle (msg){
    <span style="color: #ff0000"><span style="background-color: #f5f5f5">this<span style="background-color: #f5f5f5">.title<span style="background-color: #f5f5f5">=<span style="background-color: #f5f5f5; color: #000000"><span style="color: #ff0000">msg;
    }
    }
    }
    <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">><span style="color: #000000">

    //3. 样式:解决样式
    <span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
    h1
    <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
    color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff">purple<span style="background-color: #f5f5f5; color: #000000">;
    <span style="background-color: #f5f5f5; color: #000000">}
    <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

    五、传值和传引用

    传值: 传递的是string、number、boolean,多处地方使用,改变一处的值,其他的地方的值不会受影响
    传引用:传递的是Array、Object,多处地方使用,改变一处的值,其他的地方的值会受影响
    传值和传引用类似于C语言中的传值和传址

    六、生命周期(钩子函数)

    1. 生命周期的作用

    2. 生命周期的流程图:

    流程图里面的钩子函数说明:

    beforeCreate : 实例化vue对象之前做的一些动作,这里有一些事件的初始化,在这里可以做页面的loading

    create:在这里vue对象已经实例化完毕,事件也初始化完毕,在这里可以做网络接口数据的请求、结束beforeCreate里面的loading

        create之后检查有没有el元素,如果有就继续看有没有template,如果这两个都没有,生命周期就结束了;如果有template就里面是一个组件还是一个html元素

    beforeMount:在这个方法之后进行虚拟dom的渲染,注意:此时只是进行虚拟dom的渲染,页面还没显示出来

    mounted :执行这个方法之后页面就显示出来了

    beforeUpdate:页面进行更新之前要做的事

    updated:这个方法执行完成之后页面修改的数据已改变

    beforeDestroy:生命周期结束之前

    destroyed:生命周期结束

    3. 生命周期钩子函数的示例

    ?Users.vue

    users

    <span style="color: #0000ff"></<span style="color: #800000">div<span style="color: #0000ff">>
    <span style="color: #0000ff"></<span style="color: #800000">template<span style="color: #0000ff">>

    <span style="color: #008000"><!--<span style="color: #008000">

    传值: string、number、boolean
    传引用:Array、Object

    <span style="color: #008000">-->
    <span style="color: #0000ff"><<span style="color: #800000">script<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #000000">
    export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> {
    name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">users<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,methods : {
    changeTitle : <span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000">(){
    <span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">注册一个事件titleChanged
    <span style="background-color: #f5f5f5; color: #0000ff">this<span style="background-color: #f5f5f5; color: #000000">.$emit(<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">titleChanged<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">子向父传值<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">);
    }

    },<span style="color: #ff0000"> beforeCreate:<span style="color: #ff0000"><span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    alert(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">组件实例化之前执行的函数<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">);
    },created:<span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    alert(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">组件实例化完毕,但页面还未显示<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">);
    },beforeMount:<span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    alert(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">组件挂载前,页面仍未展示,但虚拟Dom已经配置<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">);
    },mounted:<span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    alert(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">组件挂载后,此方法执行后,页面显示<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">);
    },beforeUpdate:<span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    alert(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">组件更新前,页面仍未更新,updated:<span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    alert(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">组件更新,beforeDestory:<span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    alert(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">组件销毁前<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">);
    },destoryed:<span style="background-color: #f5f5f5">function<span style="background-color: #f5f5f5">(){
    alert(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">组件销毁<span style="background-color: #f5f5f5">"
    <span style="background-color: #f5f5f5; color: #000000"><span style="color: #ff0000">);
    }

    }
    <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">>

    <span style="color: #008000">
    <span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
    h1
    <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
    width<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 1000px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    height<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 100px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    background-color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> aqua<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> green<span style="background-color: #f5f5f5; color: #000000">;
    <span style="background-color: #f5f5f5; color: #000000">}
    <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

    七、路由和http

    路由

    路由和a标签一样实现页面的跳转,和a标签最大的不同是路由的性能更好,原因是a标签点击多次就跳转多次性能很低,而路由的话不管你点击多少次都只跳转一次

    要使用路由先安装路由:安装路由之前要先停止项目:ctrl+c安装路由的命令:npm install vue-router --save-dev安装完路由之后启动项目:npm run dev

    ?

    路由使用示例:

    main.js

    import Vue from 'vue' import App from './App' = <span style="color: #008000">/<span style="color: #008000"> eslint-disable no-new <span style="color: #008000">/
    <span style="color: #0000ff">new
    Vue({ <span style="color: #008000">//
    <span style="color: #008000">实例化一个vue对象

    <span style="color: #ff0000">router,//使用路由

    el: '#app',<span style="color: #008000">//
    <span style="color: #008000">注册根组件App.vue才能使用

    template: ''<span style="color: #008000">//
    <span style="color: #008000">VUE模板使用,可以是组件、html标签等

    })

    ?新建一个Home.vue

    home

    <span style="color: #0000ff"></<span style="color: #800000">div<span style="color: #0000ff">>
    <span style="color: #0000ff"></<span style="color: #800000">template<span style="color: #0000ff">>

    <span style="color: #008000"><!--<span style="color: #008000">

    传值: string、number、boolean
    传引用:Array、Object

    <span style="color: #008000">-->
    <span style="color: #0000ff"><<span style="color: #800000">script<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #000000">
    export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> {
    name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">home<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">emily<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">]
    }
    }
    }
    <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">>

    <span style="color: #008000">
    <span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
    h1
    <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
    width<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 1000px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    height<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 100px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    background-color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> aqua<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> green<span style="background-color: #f5f5f5; color: #000000">;
    <span style="background-color: #f5f5f5; color: #000000">}
    <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

    ?Users.vue

    users

    <span style="color: #0000ff"></<span style="color: #800000">div<span style="color: #0000ff">>
    <span style="color: #0000ff"></<span style="color: #800000">template<span style="color: #0000ff">>

    <span style="color: #008000"><!--<span style="color: #008000">

    传值: string、number、boolean
    传引用:Array、Object

    <span style="color: #008000">-->
    <span style="color: #0000ff"><<span style="color: #800000">script<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #000000">
    export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> {
    name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">users<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,data () {
    <span style="background-color: #f5f5f5; color: #0000ff">return<span style="background-color: #f5f5f5; color: #000000"> {

    }

    }
    }
    <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">>

    <span style="color: #008000">
    <span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
    h1
    <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
    width<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 1000px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    height<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 100px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    background-color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> aqua<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> green<span style="background-color: #f5f5f5; color: #000000">;
    <span style="background-color: #f5f5f5; color: #000000">}
    <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

    ?在根组件App.vue里面使用路由

  • //2. 行为:处理逻辑
    <span style="color: #0000ff"><
    <span style="color: #800000">script
    <span style="color: #0000ff">>
    <span style="background-color: #f5f5f5; color: #000000">

    export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> {
    name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">App<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">组件App.vue的名字
    <span style="background-color: #f5f5f5; color: #000000"> data () {
    <span style="background-color: #f5f5f5; color: #0000ff">return<span style="background-color: #f5f5f5; color: #000000"> {

    }

    }
    }
    <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">><span style="color: #000000">

    //3. 样式:解决样式
    <span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
    h1
    <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
    color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff">purple<span style="background-color: #f5f5f5; color: #000000">;
    <span style="background-color: #f5f5f5; color: #000000">}
    <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

    ?页面效果:

    首页

    ?点击Users跳转到Users组件

    点击home跳转到Home组件

    ?使用http

    要使用http要先安装vue-resource安装路由之前要先停止项目:ctrl+c安装路由的命令:npm install vue-resource --save-dev安装完路由之后启动项目:npm run dev

    ?

    http使用示例:

    在main.js里面引入vue-resource就可以在任何组件中使用了http了

    import Vue from 'vue' import VueRouter from 'vue-router' import App from './App' import Users from './components/Users' import Home from './components/Home' = const router = {path:"/" {path:"/Users" mode : "history"<span style="color: #008000">/<span style="color: #008000"> eslint-disable no-new <span style="color: #008000">/
    <span style="color: #0000ff">new
    Vue({ <span style="color: #008000">//
    <span style="color: #008000">实例化一个vue对象

    router,<span style="color: #008000">//
    <span style="color: #008000">使用路由

    el: '#app',<span style="color: #008000">//
    <span style="color: #008000">注册根组件App.vue才能使用

    template: ''<span style="color: #008000">//
    <span style="color: #008000">VUE模板使用,可以是组件、html标签等

    })

    ?在Home.vue组件中发送http请求

    home

    <span style="color: #0000ff"></<span style="color: #800000">div<span style="color: #0000ff">>
    <span style="color: #0000ff"></<span style="color: #800000">template<span style="color: #0000ff">>

    <span style="color: #008000"><!--<span style="color: #008000">

    传值: string、number、boolean
    传引用:Array、Object

    <span style="color: #008000">-->
    <span style="color: #0000ff"><<span style="color: #800000">script<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #000000">
    export <span style="background-color: #f5f5f5; color: #0000ff">default<span style="background-color: #f5f5f5; color: #000000"> {
    name: <span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">home<span style="background-color: #f5f5f5; color: #000000">'<span style="background-color: #f5f5f5; color: #000000">,<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">emily<span style="background-color: #f5f5f5; color: #000000">"<span style="background-color: #f5f5f5; color: #000000">]
    }
    },<span style="color: #ff0000"> created(){
    <span style="color: #ff0000"><span style="background-color: #f5f5f5">this<span style="background-color: #f5f5f5">.$http.get(<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">http://jsonplaceholder.typicode.com/users<span style="background-color: #f5f5f5">"<span style="background-color: #f5f5f5">)
    .then((data) <span style="background-color: #f5f5f5">=><span style="background-color: #f5f5f5"> {
    console.log(data);
    <span style="background-color: #f5f5f5">//<span style="background-color: #f5f5f5"> this.users = data.body;
    <span style="background-color: #f5f5f5; color: #000000"><span style="color: #ff0000"> })
    }
    }
    <span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">>

    <span style="color: #008000">
    <span style="color: #0000ff"><<span style="color: #800000">style <span style="color: #ff0000">scoped<span style="color: #0000ff">><span style="background-color: #f5f5f5; color: #800000">
    h1
    <span style="background-color: #f5f5f5; color: #000000">{<span style="background-color: #f5f5f5; color: #ff0000">
    width<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 1000px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    height<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> 100px<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    background-color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> aqua<span style="background-color: #f5f5f5; color: #000000">;<span style="background-color: #f5f5f5; color: #ff0000">
    color<span style="background-color: #f5f5f5; color: #000000">:<span style="background-color: #f5f5f5; color: #0000ff"> green<span style="background-color: #f5f5f5; color: #000000">;
    <span style="background-color: #f5f5f5; color: #000000">}
    <span style="color: #0000ff"></<span style="color: #800000">style<span style="color: #0000ff">>

    ?请求结果:

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读