第七单元(vue的单文件组件形式-单文件组件的加载原理-vue-cli构建的开发环境以及生命周期)

#课程目标

  1. 掌握安装 vue-cli 命令行工具的方法,掌握使用命令行在本地搭建开发环境,使用命令行在本地运行项目。
  2. 精通项目结构,以及各文件和文件夹的作用。
  3. 精通单文件组件的文件组织形式,模板、js、样式的书写位置。
  4. 精通单文件组件的开发规则。
  5. 精通 vue 组件生命周期的使用。
  6. 了解 .vue 文件的加载原理。

#知识点

  1. 安装命令行工具
    npm install -g @vue/cli
# OR
yarn global add @vue/cli
 
  1. 创建一个项目
    vue create my-project
 
  1. 理解项目目录的结构的构成:

  1. .vue组件结构, 理解 vue 组件化的封装思想。
    <template>
<div class="hello">
<!-- 组件模板 --> </div>
</template> <script>
// 组件 js
export default { };
</script> <style scoped>
/* 组件 css */ </style>
 
  1. export default 导出对象中的选项的介绍:
    export default {
data: function() {
return { a: 1 };
},
props: {
// 检测类型
height: Number
},
computed: {
// 计算属性
aDouble: vm => vm.a * 2
},
methods: {
plus: function() {
this.a++;
}
},
watch: {
// 属性监听
a: function(val, oldVal) {
console.log(val, oldVal);
}
},
//生命周期钩子
created() {
// 实例创建完成
},
mounted() {
// dom 挂载完成
}
};
 
  1. vue 的生命周期: 每个 vue 实例从创建到最终被销的整个生命周期中要经过一系列的过程,在每个过程中都有相应的钩子函数被调用,这些函数被称为 vue 的生命周期函数。整个生命周期如下图所示:

#生命周期钩子函数详解:
  • beforeCreate: 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。

  • create☆☆ 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见,也无法获取到页面中的 DOM 节点。

  • beforeMount: 在挂载开始之前被调用:相关的 render 函数首次被调用。

  • mounted ☆☆ el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。

  • beforeUpdate updated: 数据更新时调用,beforeUpdate在数据更新前调用 updated在数据更新后调用。

  • beforeDestroy: 实例销毁之前调用。在这一步,实例仍然完全可用。如果组件中有定时器,要在这里清除掉。

  • destroyed: vue 实例销毁后调用。调用后,vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

  • activated deactivated: keep-alive 组件在激活或停用时调用。

  1. .vue 文件被 webpack 的 vue-loader 编译过程:
  • template 模板被编译成一个字符串,在执行 Vue.component() 时被当做template属性的值被传入。
  • 模板字符串 转换成 element ASTs(解析器)
  • 对 AST 进行静态节点标记,主要用来做虚拟DOM的渲染优化(优化器)
  • 使用 element ASTs 生成 render 函数代码字符串(代码生成器)

#授课思路

#案例和作业

    1. 实现 QQ 音乐推荐页面的布局和排版(使用 .vue 组件开发)

    2. 实现 QQ 音乐排行榜页面的布局和排版 (使用 .vue 组件)

vue第七单元(vue的单文件组件形式-单文件组件的加载原理-vue-cli构建的开发环境以及生命周期)的更多相关文章

  1. Vue(基础七)_webpack(webpack异步加载原理)

    ---恢复内容开始--- 一.前言 1.webpack异步加载原理’                                           2.webpack.ensure原理     ...

  2. 【巷子】---vue路由懒加载---【vue】

    一.懒加载 也叫延迟加载或者按需加载,即在需要的时候进行加载,   二.为什么要使用懒加载 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要 ...

  3. 前端性能优化成神之路--vue组件懒加载(Vue Lazy Component )

    ---恢复内容开始--- 使用组件懒加载的原因 我们先来看看这样的一个页面,页面由大量模块组成,所有模块是同时进行加载,模块中图片内容较多,每个模块的依赖资源较多(包括js文件.接口文件.css文件等 ...

  4. 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多

    通过多次爬坑,发现了这些监听滚动来加载更多的组件的共同点, 因为这些加载更多的方法是绑定在需要加载更多的内容的元素上的, 所以是进入页面则直接触发一次,当监听到滚动事件之后,继续加载更多, 所以对于无 ...

  5. Visual Studio 提示某个dll文件(已在Microsoft Visual Studio 外对该文件进行了修改,是否重新加载它)

    如题: Visual Studio 提示某个dll文件(已在Microsoft Visual Studio 外对该文件进行了修改,是否重新加载它) 如果选择“是”,那恭喜你,第二次生成的时候,引用这个 ...

  6. 表单配置项写法,表单写成JSON数组套对象,一行是一个数组单位,一列是一个对象单位,然后再写一个公共组件读取这个配置,循环加载slot,外层载入slot的自定义部分,比如input select等,这种写法就是把组件嵌套改为配置方式

    表单配置项写法,表单写成JSON数组套对象,一行是一个数组单位,一列是一个对象单位,然后再写一个公共组件读取这个配置,循环加载slot,外层载入slot的自定义部分,比如input select等,这 ...

  7. [深度学习] Pytorch(三)—— 多/单GPU、CPU,训练保存、加载模型参数问题

    [深度学习] Pytorch(三)-- 多/单GPU.CPU,训练保存.加载预测模型问题 上一篇实践学习中,遇到了在多/单个GPU.GPU与CPU的不同环境下训练保存.加载使用使用模型的问题,如果保存 ...

  8. vue项目引用 iView 组件——全局安装与按需加载

    框架的热度,出现了不少基于Vue的UI组件库,这次项目用到了 iView 这个组件库.使用方法官网很详细. 官网:https://www.iviewui.com/ 这篇文章主要是记录一下npm 全局安 ...

  9. 仿ElementUI构建自己的Vue组件库用babel-plugin-component按需加载组件及自定义SASS主题

    最近使用ElementUI做项目的时候用Babel的插件babel-plugin-component做按需加载,使得组件打包的JS和CSS包体积大大缩小,加载速度也大大提升,所有想模仿做一个组件库也来 ...

随机推荐

  1. 教你用Vegas Pro制作视频的遮罩转场特效

    很多小伙伴在接触了Vegas之后,都想利用Vegas制作出各种酷炫的特效.小编也是一样. 今天,小编就和大家分享一下,小编近期学会的遮罩转场特效. 首先想要制作遮罩转场效果,需要的素材有:至少两个图片 ...

  2. selenium WebDriver提示Unable to find a matching set of capabilities解决方法

    问题出在:应该将火狐浏览器驱动添加到火狐浏览器安装目录下,并且将火狐浏览器安装目录放在path下面.(出现大意,忘了在火狐浏览器下放其对应的驱动) 亲测以下组合方式可用:   pycharm-comm ...

  3. synchronized关键字的内存语义

    以下内容摘自:Java并发编程之美 加锁和释放锁的语义:当获取锁以后会清空锁块内本地内存中将会被用到的共享变量,在使用这些共享变量的时从主内存进行加载,在释放锁时将本地内存中修改的 共享变量刷新到主内 ...

  4. jQuery 根据value设置radio默认选中

    jQuery 根据value设置radio默认选中:HTML: <input type="radio" name="type" value="1 ...

  5. Java基础教程——封装

    面向对象的三大特征 封装:encapsulation 继承:inheritance 多态:polymorphism 封装 类是一个最基本的封装 封装的好处: 数据安全:保证数据安全 方便调用:提供清晰 ...

  6. @Async失效之谜

    @Async如何使用 异步的方法上加上@Async异步注解 启动类中需要加上@EnableAsync才有效 使用时类似于下列函数: new Thread(()-> System.out.prin ...

  7. Beta冲刺随笔——Day_Eight

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Beta冲刺 作业正文 正文 其他参考文献 无 今日事今日毕 林涛: ...

  8. Django----View.py

    ·首先先下载安装包· pip install djangorestframework==3.11.1 pip install django-filter==2.3.0 # 过滤器 pip instal ...

  9. macos brew zookeeper,安装后zookeeper启动失败?

    一.Zookeeper安装流程 执行如下安装命令: brew install zookeeper 执行截图如下: 安装后查看 zookeeper 安装信息(默认拉取最新版本) brew info zo ...

  10. 20191017_datatable.select() 数据源中没有dataRow

    filterStr =" 记录时间 >= '2019/10/17 00:00:00' and 记录时间 <='2019/10/20 23:59:59' " 代码: dg ...