VUE第三天学习
内容:生命周期、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的数据类型是一个数组,数据与数据之间用逗号隔开)
父组件:
子组件:
2.子父组件传值
第一步:子组件执行自己的函数来主动发送数据
第二步:在父组件使用子组件时,需要传递一个自定义事件,方便子组件来出发这个自定义事件对应的函数
第三步:子组件中通过this.$emit("自定义事件名")来触发父组件中的函数,来进行数据的传递。
3.兄弟组件传值
第一步:设置一个公用的容器,来进行数据的传递
/src/main.js
Vue.prototype.bus = new Vue();
第二步:在需要发送数据的组件中通过这个公用的容器来进行数据的发送。
this.bus.$emit("变量名",变量值)
第三步:在其他兄弟组件中接收兄弟组件传递的数据
mounted(){
this.bus.$on("变量名",(形参)=>{...})
}
第一个兄弟组件:
其他兄弟组件:
作业:
用vue-cli脚手架创建后台管理系统页面,并且用bootstrap写一个表格页面和表单页面。
王爸爸,我有一辆{{ car }}
这是一个子组件,父组件给的礼物是:{{ gift }},生活费:{{ fee }}
这是一个子组件,父组件给的礼物是:{{ gift }},生活费:{{ fee }}
这是一个子组件,父组件给的礼物是:{{ gift }},生活费:{{ fee }}
我是兄弟组件
兄弟给的数据:{{ msg }}
发表评论 (审核通过后显示评论):