Vue项目中文件路径问题在我们写Vue项目中的时候,路径是很令人苦恼的东西, 比如:src 引入资源的时候 1<img slot="item-icon-active" src="./assets/imgs/tabbar/profile_active.svg" alt=""> 比如: 引入一些组件的时候 1import TabBerItem from './components/tabber/TabBerItem' 等等。。。 当我们要去移动这些文件,或者复用某个组件的时候,那么对于路径问题,就很难受了,我们就要一个一个去改,很麻烦。 这时就需要我们为路径起别名了。 我们需要配置webpack文件。 举个栗子: 当你引用某个组件的时候,以前是这样用的: 1import TabBerItem from './components/tabber/TabBerItem' 使用别名,就可以这样用: 1import TabBerItem from 'c ...
Vue-router 详解前端路由规则URL的hash: URL的hash也就是锚点(#), 本质上是改变window.location的href属性. 我们可以通过直接赋值location.hash来改变href, 但是页面不发生刷新 HTML5的history模式:pushState: history接口是HTML5新增的, 它有五种模式改变URL而不刷新页面。 采用入栈出栈的模式,可以后退和前进。 history.pushState() HTML5的history模式:replaceState: 他和 pushState 基本类似,但是replaceState 不能后退与前进 HTML5的history模式:go: 补充说明: 上面只演示了三个方法 因为 history.back() 等价于 history.go(-1) history.forward() 则等价于 history.go(1) 这三个接口等同于浏览器界面的前进后退。 Vue-router 基础认识 Vue-router目前前端流行的三大框架, 都有自己的路由实现: Angular ...
什么是前端渲染和后端渲染,前端路由和后端路由。视频讲解 后端渲染:服务器直接生产渲染好对应的HTML页面, 返回给客户端进行展示。比如:jsp页面 好处:前端耗时少,即减少了首屏时间,模板统一在后端。前端(相对)省事,不占用客户端运算资源(解析模板) 坏处:占用服务器资源。 前端渲染浏览器中显示的网页中的大部分内容,都是由前端写的 js 代码在浏览器中执行,最终渲染出来的网页。 也可以怎么说:后端返回JSON数据,前端利用预先写的html模板,循环读取JSON数据,拼接字符串,并插入页面。 好处:网络传输数据量小。不占用服务端运算资源(解析模板),模板在前端(很有可能仅部分在前端),改结构变交互都前端自己来了,改完自己调就行。 坏处:前端耗时较多,对前端工作人员水平要求相对较高。前端代码较多,因为部分以前在后台处理的交互逻辑交给了前端处理。占用少部分客户端运算资源用于解析模板。 前端渲染与后端渲染对比:后端渲染: 页面呈现速度:快,受限于用户的带宽 流量消耗:少一点点(可以省去前端框架部分的代码) 可维护性:差(前后端东西放一起,掐架多年,早就在闹分手啦) s ...
问题:setInterval和setTimeout中传入函数时,函数中的this会指向window对象 我们先来看一个例子: 123456789101112131415var num = 0;function Obj (){ this.num = 1, this.getNum = function(){ console.log(this.num); }, this.getNumLater = function(){ setTimeout(function(){ console.log(this.num); }, 1000) }}var obj = new Obj; obj.getNum();//1  这里打印的是obj.num,值为1obj.getNumLater()//0  这里打印的是window.num,值为0 从上述例子中可以看到setTimeout中函数内的this是指向了window对象 ...
箭头函数的基本使用ES6 允许使用“箭头”(=>)定义函数。 123456var f = v => v;// 等同于var f = function (v) { return v;}; 如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。 123456789var f = () => 5;// 等同于var f = function () { return 5 };var sum = (num1, num2) => num1 + num2;// 等同于var sum = function(num1, num2) { return num1 + num2;}; 如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回。 1var sum = (num1, num2) => { return num1 + num2; } 由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号,否则 ...
Vue CLI Vue CLI 官网 什么是Vue CLICLI是Command-Line Interface, 翻译为命令行界面, 但是俗称脚手架. Vue CLI是一个官方发布 vue.js 项目脚手架 使用 vue-cli 可以快速搭建Vue开发环境以及对应的webpack配置.。 Vue CLI使用前提Node 版本要求 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11.0+)。你可以使用 nvm 或 nvm-windows 在同一台电脑中管理多个 Node 版本。 Vue.js官方脚手架工具就使用了webpack模板 对所有的资源会压缩等优化操作 它在开发过程中提供了一套完整的功能,能够使得我们开发过程中变得高效。 Webpack的全局安装 1npm install webpack -g Vue CLI的安装传送门 关于旧版本 Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vu ...
Vue-cli3打包 npm run build 路径错误解决办法我们用vue-cli搭建的项目执行npm build后本地打开页面空白,如何才能查看npm run build之后的结果呢。 我们先看一下提示信息: 12Tip: built files are meant to be served over an HTTP server. Opening index.html over file:// won't work. 这段话的意思就是说:构建文件务必放在一个HTTP服务器。直接打开index.html文件将不工作,那如何本地查看呢? (1)到项目目录下的config文件夹里的index.js文件中,其中dev是开发环境,build是构建版本,找到build下面的assetsPublicPath: ‘/‘,然后修改为assetsPublicPath: ‘./‘,即“/”前加点。 现在再重新打包一次 npm run build,刷新你的页面,就可以看到啦。 (2)还有一种就是借助http-server: 首先我们需要安装它命令npm install http ...
在我们初始化vue项目的时候,会让我们选择 Runtime-Compiler 还是 Runtime-only 。 那我们就来看一下他们有什么区别Runtime-Compiler:编译器版本。Runtime-only:运行时版本。 如果你需要在客户端编译模板(例如,向 template选项传入一个字符串,或者需要将模板中的非DOM的HTML挂载到一个元素),你需要带有编译器的版本,因而需要完整构建版本。 1234567891011// 这种情况需要编译器new Vue({ template:`<div>{{message}}</div>`})// 这种情况不需要编译器new Vue({ render(h){ return h('div',this.message) }}) 在使用vue- loader或 verify时,*.vue文件中的模板会在构建时(build time)预编译pre-compile)为 Javascri ...
在我们初始化Vue项目的时候,有时候会碰到’webpack-dev-server’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。解决方案: 方案一:看看自己的项目里面是否有node_modules文件夹, 1、如果没有就尝试执行npm install,这是因为缺少依赖包。2、如果有就将这个node_modules文件夹删掉,重新执行npm install,等待安装完之后,再次运行“npm run dev”,有些人的是马上就可以了,然而往往还会有人(譬如我)仍然报类似的错误,这个时候你只需要再次重复相同的操作即可,“一次不成再删再安装”!!! 方案二:如果还是不可以就尝试第二种方法,通常是没有装依赖导致的问题。解决方法:借鉴网上大神的方法可以奏效 可以通过修改npm的配置文件让npm到另外的pacakge mirror站点去找package,通过如下命令 $ npm config set registry https://registry.npm.taobao.org$ npm config set registry http://r.cnpmjs.org或者:npm ...
错误如下: webpack默认是不能处理vue文件,所以只能我们自己添加一些额外的插件进行处理它。解决方式:第一步:安装插件 1cnpm i vue-loader vue-template-compiler --save-dev 第二步:在webpack.config.js添加如下配置: 1234567891011module: { rules: [ { test: /\.vue$/, use: { loader: 'vue-loader' } }, ] } 然后重新运行,如果还报错可能是vue-loader 版本的原因,你的版本太高了。 我们又两种方式来解决这个问题: 方式一:减低vue-loader 的版本 将vue-loader 的版本减低问14.0.0 以下。 1cnpm i vue-loader@13.0.0 --save-dev 方式二:额外 ...