美文网首页让前端飞
VUE第三天学习

VUE第三天学习

作者: 誩先生 | 来源:发表于2020-02-13 15:26 被阅读0次
内容:生命周期、vue-cli脚手架、组件传值

购物车bug解决:

watch中改变了每一个商品的选中状态,此时,计算属性也会重新执行,造成数据冲突。

解决办法:把监听去掉,给全选增加一个单独的点击事件

checkAll(){
    this.goods.map(d=>{
        d.checked = !this.allChecked
    })
}

一、生命周期

vue实例从创建、挂载、更新、销毁的一个完整的过程叫生命周期,在整个vue的生命周期中,有一些特殊的方法叫钩子函数。

(1)页面渲染期

beforeCreate vue实例创建之前

created vue实例创建完成

beforeMount 挂载之前(准备好html结构,并不会解析vue语法)

mounted 挂载完成(*****),一般在此生命周期函数中执行ajax请求

(2)页面更新期

beforeUpdate 数据更新之前

updated 数据更新完成

(3)页面销毁期

beforeDestroy 销毁之前

destroyed 销毁完成

二、vue-cli脚手架

2.0 (主讲)

3.0

需要有Node环境,自行下载nodejs进行安装即可

1.安装webpack

npm i webpack -g

2.安装vue-cli

npm i vue-cli -g

3.初始化项目

vue init webpack 项目名称

注意:项目名称不能包含中和空格,并且不能包含vue全家桶中的关键字(vuex、vue-router)

vue init webpack mydemo

[图片上传失败...(image-466985-1581578757189)]

4.运行项目

npm run dev

或者npm start

5.项目目录结构

mydemo
    build               webpack目录,进行项目打包等
    config              项目配置目录
    node_modules        项目依赖目录
    src                 项目程序目录(主战场)
        main.js         项目启动文件
        App.vue         根组件
        assets          静态资源
        components      组件目录
    static              静态资源
    .babelrc            babel配置文件
    .editorconfig       代码规范配置文件
    .gitignore          git忽略文件的配置文件
    .postcssrc.js       postcss插件配置文件
    index.html          首页
    package.json        依赖配置文件
    README.md           说明

项目运行流程:

index.html > src/main.js > App.vue > components/HelloWorld.vue

三、vue-tools工具

1.谷歌浏览器开启开发者模式

2.安装谷歌访问助手

(1)拿到谷歌访问助手压缩包后进行解压

(2)在谷歌浏览器右侧三个点按钮处点击后找到扩展程序,点击加载已解压扩展程序,选择解压后的谷歌访问助手文件夹即可

3.安装vue-devtools

在谷歌应用商店中搜索vue,搜索到之后添加到chrome即可使用。

四、组件传值【重点】

1.父子组件传值

第一步:在父组件上,使用子组件时,通过自定义属性来给子组件传递数据

第二步:在子组件上,需要主动的接收数据,通过props来接收(props的数据类型是一个数组,数据与数据之间用逗号隔开)

父组件:

<template>
    <div>
        <h1>王爸爸,我有一辆{{ car }}</h1>
        <my-child :gift="car" :fee="10000"></my-child>
    </div>
</template>
<script>
import myChild from './Child'
export default {
    data(){
        return{
            car:'劳斯莱斯'
        }
    },
    components:{
        myChild
    }
}
</script>

子组件:

<template>
    <div>
        <h3>这是一个子组件,父组件给的礼物是:{{ gift }},生活费:{{ fee }}</h3>
    </div>
</template>
<script>
export default {
    props:["gift","fee"]
}
</script>

2.子父组件传值

第一步:子组件执行自己的函数来主动发送数据

第二步:在父组件使用子组件时,需要传递一个自定义事件,方便子组件来出发这个自定义事件对应的函数

第三步:子组件中通过this.$emit("自定义事件名")来触发父组件中的函数,来进行数据的传递。

<template>
    <div class="box">
        <h3>这是一个子组件,父组件给的礼物是:{{ gift }},生活费:{{ fee }}</h3>
        <button @click="toParent">回馈</button>
    </div>
</template>
<script>
export default {
    props:["gift","fee"],
    methods:{
        toParent(){
            console.log('to parent')
            //$emit 用来触发父组件传递过来的自定义事件
            this.$emit("getChild",500000)
        }
    }
}
</script>

3.兄弟组件传值

第一步:设置一个公用的容器,来进行数据的传递

/src/main.js

Vue.prototype.bus = new Vue();

第二步:在需要发送数据的组件中通过这个公用的容器来进行数据的发送。

this.bus.$emit("变量名",变量值)

第三步:在其他兄弟组件中接收兄弟组件传递的数据

mounted(){
    this.bus.$on("变量名",(形参)=>{...})
}

第一个兄弟组件:

<template>
    <div class="box">
        <h3>这是一个子组件,父组件给的礼物是:{{ gift }},生活费:{{ fee }}</h3>
        <button @click="toParent">回馈</button>
        <button @click="toBrother">给兄弟分享</button>
    </div>
</template>
<script>
export default {
    props:["gift","fee"],
    methods:{
        toParent(){
            console.log('to parent')
            //$emit 用来触发父组件传递过来的自定义事件
            this.$emit("getChild",500000)
        },
        toBrother(){
            console.log(this)
            console.log('第一个兄弟发送数据')
            this.bus.$emit("getBrother","兄弟,接着")
        }
    }
}
</script>

其他兄弟组件:

<template>
    <div class="box">
        <h3>我是兄弟组件</h3>
        <p>兄弟给的数据:{{ msg }}</p>
    </div>
</template>
<script>
export default {
    data(){
        return{
            msg:''
        }
    },
    mounted(){
        //组件挂载完成后,一直监听某个事件,用来接收数据
        this.bus.$on("getBrother",(e)=>{
            console.log(this)//注意,这里要使用箭头函数来保持this指向
            this.msg = e
        })
    }
}
</script>

作业:

用vue-cli脚手架创建后台管理系统页面,并且用bootstrap写一个表格页面和表单页面。

相关文章

  • vue

    vue介绍 第一天 第二天 第三天---第八天 Vue的基本概念 Vue是什么? Vue能做什么? 如何学习? 作...

  • VUE第三天学习

    购物车bug解决: watch中改变了每一个商品的选中状态,此时,计算属性也会重新执行,造成数据冲突。 解决办法:...

  • vue 基础学习 第三天

    21 事件的基本使用 代码 事件绑定:在宿主元素内 v-on:事件="事件触发调用的函数()" , 如果没有参数列...

  • vue学习记录第三天

    悄咪咪的说讲课的老师说话声音好难听啊 复习 v-model(单选时只有一个数,多选的时候是数组,提供一个value...

  • vue学习回顾第三天

    Vue组件 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可...

  • Vue学习的第三天

    模板语法 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的...

  • 手把手教你Vue从零撸一个迷你版MVVM框架

    这段时间 在工作之余的休息时间,学习了解Vue ,学习Vue的设计思想,通过Vue官网学习Vue的语法,通过Vue...

  • vue使用拖拽组件

    vue-draggable 学习和使用 组件实例 Vue.Draggable Vue.Draggable学习总结...

  • vue2 基础学习02 (Vue组件)

    vue2 基础学习02 (Vue组件) vue学习路径和建议----尤雨溪 vue官网 1.Vue组件 参考官方文...

  • Vue学习的路径

    接下来我将正式学习Vue,根据Vue作者所给的学习路径进行学习。每天做好学习笔记。 ​ vue学习路径和建议-...

网友评论

    本文标题:VUE第三天学习

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