热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vue学习笔记(补)

一。webpack主要用来处理js代码安装webpack步骤:1.首先官网下载node并安装和配置环境2.在cmd命令窗口输入node-v查看是否安装成功3.

一。webpack主要用来处理js代码

安装webpack步骤:
1.首先官网下载node并安装和配置环境
2.在cmd命令窗口输入node -v 查看是否安装成功
3.输入npm install webpack@3.6.0 安装3.6.0版本的webpack
4.输入webpack -v 查看是否安装成功
5.IDE本地安装webpack:
在控制台输入 npm install webpack@3.6.0 --save-dev 安装开发(dev表示开发时依赖)的webpack
然后npm init 命令来在本地配置node要想用webpack处理css、scss 、.vue等文件时,此时需要扩展webpack的loader:
1.通过npm安装相应的loader:npm install --save-dev css-loader
2.在webpack.config.js文件下的modules关键字下进行配置
loader用法和配置都可在官网找到ES6语法处理:使用babel
在webpack中使用对应的babel的loader即可:
npm install --save-dev babel-loader@7 babel-core babel-preset-es2015安装vue模块:npm install vue --save // 这里是为了系统在js代码里面识别vue代码组件化开发vue:要想识别.vue文件必须有以下安装
npm install vue-loader vue-template-compiler --save-dev注意:node(拥有V8引擎,底层是C++开发)可以直接执行js文件

二.plugin(插件)的安装与使用

1.横幅plugin只需要直接引用即可,webpack已经内置
2.htmlwebpackplugin可以将html文件一起打包:npm install html-webpack-plugin --save-dev
3.js文件压缩:npm install uglifyjs-webpack-plugin@1.1.1 --save-dev

三.搭建webpack本地服务器(基于node.js,内部使用express框架):

npm install webpack-dev-server@2.9.1 --save-dev
可以实现我们想要的让浏览器自动刷新显示我们修改后的结果,不用每次都打包一次配置:
devServer: {contentBase: 为那一个文件提供本地服务,默认为根文件夹port: 端口号inline: 页面实时刷新historyApiFallback: 在SPA页面中,依赖HTML5的history模式
}
然后在package.json文件里面的scripts里面添加: "devServer": "webpack-dev-server --open"就可以本地跑起来了

四.webpack配置文件分离

1.建立build文件夹,把配置文件都放里面
再装上:npm install webpack-merge --save-dev
然后合并文件:1.base和dev,2.base和prod,见build文件夹配置过程

五.vue-cli自动生成webpack配置

关于卸载与安装:3.0以下的版本卸载:npm uninstall(install) -g vue-cli3.0以上的版本卸载: npm uninstall(install) -g @vue/cli
1.安装vue脚手架3.x:npm install @vue/cli -g,然后拉取脚手架2.x的模板: npm install @vue/cli-init如果安装失败:则删除此文件夹(C:\Users\19831\AppData\Roaming\npm-cache),再重试Cli2.x初始化项目:vue init webpack 项目名称
如果初始化创建项目时勾选了ESlink,但是后面又不想用它,把index.js里面的useEslint改为false即可Cli3.x初始化项目:vue create my-project
如果想删除自定义的那个配置了,在C:\Users\19831里面的.vuerc文件删除即可
cli3.x里面的配置文件都去哪了?怎么修改?1.启动vue的gui界面修改:vue ui2.在node_modules/@vue/cli-service修改配置3.添加一个vue.config.js文件自己添加配置,添加完系统会自动加入到默认原配置文件当中
用vuecli创建项目时,runtime-compiler与runtime-only(性能更高)的区别:代码区别:仅仅在入口js文件有区别runtime-compiler包含了运行时解析组件并渲染:template -> ast(抽象语法树)—> render函数形成一个虚拟dom -> 真实dom(UI)runtime-only仅仅只是渲染,不会解析组件:render函数形成一个虚拟dom -> 真实dom(UI)如果不在.vue文件中写组件,那么需要runtime-compiler,反之,如果上述的组件在.vue文件中那么我们需要安装vue-loader和vue-template-compiler来识别解析.vue文件,那么意味着,让我们用renter函数来调用组件时,此时的组件已经被解析过了,因此,安装了vue-loader和vue-template-compiler之后就只用runtime-only的就行了

六.Vue-Router

后端渲染与前端渲染:后端阶段:后端渲染:网页向服务器请求数据时,此网页已经在服务器渲染好了,一次性传输一整个页面,并且此页面一般只包含html+css代码;数据是java或者php动态传给html的后端路由:处理后端渲染,后端处理URL与页面之间的映射关系,对不同的URL进行不同的处理前后端分离阶段:后端只负责数据,不负责任何阶段的内容,先从静态资源服务器获取html+css+js代码,再js通过Ajax(提供API接口)传输、获取、处理后端数据前端渲染:在浏览器上显示的网页中的大部分内容,都是由前端写的js代码在浏览器中执行,最终渲染出来的网页单页面富应用阶段SPA:整个网站只有一个页面前端路由:当网页向服务器请求数据时,先从静态资源服务器获取html+css+js代码,显示相应的内容(并没有把内容全部显示),前端路由会对这个URL做一个映射,当点击页面上的其它按钮时(改变URL,页面不会进行整体刷新),本来应该会向静态资源服务器再一次请求数据,但是前端路由限制了这次行为,而是通过js里面的代码判断显示其他内容(其实每块内容就是一个组件,js每次展示一个组件)改变URL,页面不会进行整体刷新的方法:1.改变URL的hash2.html5里面的history(栈结构):history.pushState({},'','向原URL的后面追加字符串'),history.push()=history.go(-1),回退到上一个URL,history.forward()=history.go(1),回到下一个URLhistory.replaceState({},'','向原URL的后面追加字符串'),直接替换,不能返回这些方法等同于浏览器的前进后退1.安装v-router:npm install vue-router --save
2.使用配置:在模块化工程中使用它:第一步:导入路由对象,并且调用Vue.use第二步:创建路由实例,并且传入路由映射配置第三步:在Vue实例中挂载创建的路由实例
3.创建路由映射配置的步骤:第一步:创建路由组件第二步:配置路由映射:组件和路径映射关系第三步:使用路由:通过4.懒加载:用到时,再加载
解决方案:把不同的路由对应的组件打包到不同的js文件,在router路由配置里面修改即可打包时,一个懒加载对应一个js文件5.组件嵌套:1.创建对应的子组件,并且在路由映射中配置对应的子路由2.在组件内部使用标签
6.vue-router参数传递:两种方式:params和query1.params:(1)配置路由格式:/router/:id(2)传递的方式:在path后面跟上对应的值(3)传递后形成的路径:router/123,router/abc(4)获取id值:$router.params.id2.query类型:(1)配置路由格式:/router,也就是普通配置(2)传递的方式:对象中使用query的key作为传递方式(3)传递后形成的路径:router?123,router?abc
7.vue-router导航守卫(全局守卫):在路由跳转的时候有用处,比如跳转时改变页面标题(当然生命周期函数也可以实现):1.首先在路由配置中加入meta属性2.router.beforeEach((to,from,next) => {} ) 来使用
8.Vue中的keep-alive:缓存组件页面的当前的信息,防止页面切换时被销毁,两个属性:include和exclude,包含组件和排除组件用法:把标签放到keep-alive标签里面即可例:当把首页内容切换到消息时,从其他页面切回到首页还是显示消息,而不是新闻(注:这里同时需要组件内的导航守卫来实现)
9.文件路径问题可以给文件路径起别名:在webpack.base.conf.js文件下的resolve下的alias里面起别名然后import导入文件的时候直接用别名即可,但在html里面用别名需要在别名前面加上一个 ~

七.ES6里面的promise特性:异步编程的一种解决方案,网络请求中常用到

使用:一般有异步操作时,使用Promise对这个异步操作进行封装
用途:使逻辑结构更加清晰,避免回调地狱,Ajax异步请求层数很多时,容易混乱,Promise就是解决这个问题注意:同一层级的请求会一起依次执行再执行下一层级的所有请求,以此类推三种状态:1、pending:等待状态,正在请求或定时器未到时间2、fulfill:满足状态,主动回调了resolve函数之后,就是处于该状态,并且会掉then()函数3、reject:拒绝状态

八.Vuex:专为Vue.js开发的状态管理模式,集中式存储管理所有组件的状态

通俗解释:就是所有组件共享一些变量,而Vuex则可以把这些变量放在一个对象里面管理这些变量,并且他是响应式的
步骤:1.安装插件,Vue.use(Vuex)2.创建对象,new Vuex.store对象里面通常有五个对象:·state:保存状态信息·mutations:同步操作,且里面的函数的参数只能是store里面的五个对象,是Vuex的store状态更新的唯一方式包括两部分:字符串的事件类型和一个回调函数,且回调函数的第一个参数为state,后面也可传入自定义参数提交风格:1.commit(字符串的事件类型,参数...)2.commit({type: '字符串的事件类型',参数...}),不过这个时候传入的就是一个payload对象了,获取参数:payload.参数·actions:异步操作(网络请求)·getters:相当于计算属性computed,且里面的函数的参数只能是store里面的五个对象·modules:3.挂载到vue实例中
例子见10-vuex-learning
注意:虽然组件中可以直接修改state,但是直接在组件内修改state的内容是不可取的,因为会导致Devtools插件(浏览器插件)无法跟踪是谁修改的内容,应该通过mutations或者actions修改
state单一状态树(单一数据源):把所有信息放在一个store里面,不推荐使用多个store对象
数据的响应式原理:只要在一开始被定义在state中的数据,都是响应式的,这些数据会被加入到响应式系统中,而响应式系统会监听数据的变化
Vuex-mutations类型常量(官方推荐):防止定义和使用的时候字母写错

标题九.网络请求封装(axios框架)

支持Promise,执行完会在内部调用resolve()函数
全局配置: 常见配置用的时候上网查就可以了1.当URL的前缀相同时,可以设置:axios.defaults.baseURL = ''2.相同的请求超时时间:axios.defaults.timeout = 1000
axios实例和模块封装:即使进行了全局配置,但是有些时候不同的数据可能还是来自不同的服务器
拦截器:·请求成功:·请求失败:·响应成功:·响应失败:

标题十.新项目创建步骤

1.划分目录结构
2.引入两个基础css文件
3.vue.config和editorconfig文件
4.tabbar引入与项目模块划分

标题十一.知识点:

1.ref绑定组件时,父组件通过this.$refs.name拿到的是子组件对象绑定普通标签时,拿到的是对应的组件2.防抖debounce函数/节流函数throttle·对于refresh非常频繁的问题,要进行防抖操作

推荐阅读
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • RN即ReactNative基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,css,js,当然如果比较急,那就直接上手吧,毕竟用学习前面基础的时间,R ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • Node.js详细安装及环境配置
    1、下载安装根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包(官网:https:odejs.orgzh-cndownload).msi和.zip格式区别 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
author-avatar
羚瑞聪羊奶粉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有