概述
摘录项目学习中遇到的关键点,记录后续整理
Vue 动态组件
有时候,我们会遇到这样的需求:通过点击标签来切换不同的内容,本质上也就是切换不同的组件。关键点就在于,动态切换的组件部分使用<component></component>,然后通过属性 is 绑定一个计算属性,计算属性返回的结果就是你点击选中的对应组件的名称。
CSS & 符号与 @import 含义
看scss代码,发现了一个奇怪的 & ,结合上下文,没看懂意思。google一下,找到了答案。&是属于sass和less的语法,表示的是上级选择器,这样就可以省略重复书写上级选择器的代码。
另外,我们知道在 js 文件中引入其他模块,需要 import。而在 css 文件中,需要引入其他的 css 文件,我们使用的是 @import。
关于 Vue 中组件的注册——全局注册和局部注册(待解决)
Vue 中组件的注册,我一直模模糊糊的,也曾经特地翻开文档,看了,但是没过多久就又忘记了。首先这说明,我一直都属于没有彻底弄懂,Vue 组件注册的方式。所以我需要系统的,联系上下文的进行组件的知识学习。其次,熟悉概念的基础上,我更要多敲代码才能熟悉,类比小程序的生命周期,也是后来一直看到,一直写,才记住了。
Vuex 是什么?如何使用?
Vuex 是专门为 Vue.js 应用程序开发的一套状态管理模式。他采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
使用 Vuex 的方法主要是两种,第一种是使用全局标签 <script></script> 引入 CDN 链接来使用。
第二种就是通过 npm 和 yarn 模块管理工具,下载安装 vuex 模块,注意这种情况下,必须显式地通过 Vue.use() 来安装 Vuex;
process.env.NODE_ENV
在node中,有全局变量process表示的是当前的node进程。process.env包含着关于系统环境的信息。但是process.env中并不存在NODE_ENV这个东西。NODE_ENV是用户一个自定义的变量,在webpack中它的用途是判断生产环境或开发环境的依据的。
@文件夹路径
./这是相对路径的意思,同级目录。
../上级目录。
@/这是webpack设置的路径别名。
在build/webpack.base.conf这个文件里面设置了@具体指的是什么
resolve: {
// 路径别名
alias: {
'@': resolve('src'),
'vue$': 'vue/dist/vue.esm.js'
}
},
就是说@这东西代表着到src这个文件夹的路径。
__dirname与__filename
__dirname 表示当前文件所在的目录的绝对路径
__filename 表示当前文件的绝对路径
module.filename ==== __filename 等价
$router与$route
XHR实例
浏览器支持图模型
fastClick
移动端浏览器在监听点击事件时,会有300ms的延迟,目的是为了判断是否是双击事件,但是这样就造成了一个操作延迟,用户体验欠佳。针对没有双击事件的情况下,有方案解决这个延迟问题。目前一般,使用fastclick.js库,来立即响应用户的点击事件。可以通过<script>标签引用或者npm安装。
其实现原理是,监听到用户的点击事件时,立即响应自己定义的click事件,然后将300ms延迟后的浏览器原生click事件阻止。
组件的复用
Vue 项目中,组件化的一个好处就是可以复用代码。比如一个登录组件,假设登录方式是手机验证码登录和账号密码登录,那么为了复用组件,组件内部必须要有两部分,分别描述登录方式不同时页面的内容。这就需要我们在写组件之前,好好考虑组件应用的不同场景,而不是什么都不思考,先写一个,后续再添加。这样做的确省了思考的时间,但是后续要浪费几倍的无意义时间。
Vuex 的使用
项目大的时候,需要将一些数据存储为全局变量,特此引入 Vuex。
- vuex 的安装 by NPM
npm install vuex --save
-
vuex 的使用
新建store文件夹,内部新建 store.js 文件。
Vuex 的使用
less 的使用
less 是css的预处理器之一,为原先描述性的css语言,添加了编程思维(变量,计算等),减少了重复代码的书写。但是Vue本身是不能识别less文件的,需要我们进行配置才能使用。配置过程也很简单,具体步骤参考这篇文章。
Vue中less的使用