一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Frontend

js 的forEach不支持continue解决

break—-用return false; continue --用return true; 代码如下: Object.keys(flatMenuData).forEach((key) => { if (item.routeName === this.$route.name && !rs.activeItem) { //如果开启了首页不展示左侧菜单,则屏蔽左侧菜单 if(this.inner_sideMenu.opt.notActiveIndex){ if(this.$route.name ==’index'){ return true } } } } ———————————————— 版权声明:本文为CSDN博主「CarryBest」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/carrybest/article/details/89000582

龙生   17 Feb 2020
View Details

Vue项目静态文件之图片的引用

一、前提 工程文件目录 |- mock |- node_modules |- public |- src |-- api |-- assets |-- components |-- router |-- store |-- style |-- test1.scss |-- test1_main.scss |-- utils |-- views |-- static_test |-- test1.scss |-- App.vue |-- main.js 二、背景图的引用 背景图样式直接写在element的style属性里 直接在html模板里,在dom对象的style里加背景图,不起效果,代码如下:

  背景样式class写在vue文件的style标签里 写法: background: url('图片相对当前的路径') center top no-repeat

 

  编译后的css:

  背景样式class写在样式文件里,在vue文件里引入样式文件 样式写法:

  这个图片路径很重要,url是图片相对于当前vue文件的路径,而不是图片相对于样式文件的路径。 html写法, /views/static_test/test1.vue:

  样式写法, /style/test1.scss:

  /views/static_test/test1.vue,引入样式文件写法:

  编译后:

  背景样式class写在样式文件里,在main.js里引入样式文件 html写法, /views/static_test/test1.vue:

  样式写法, /style/test1_main.scss:

  请注意,url是main.js相对于图片文件的路径。 引入样式文件方法,main.js:

[…]

龙生   14 Feb 2020
View Details

css3 字体自动换行第二行缩进一格

我们知道css中text-indent属性可以使每个段落首行开头文字缩进,如缩进2个文字距离样式。 p{   text-indent: 2em; /*em是相对单位*/ } 注:em是相对长度单位。相对于当前对象内文本的字体尺寸。我们中文段落一般每段前空两个汉字。实际上,就是首行缩进了2em。 那如果我们想让第二行缩进一格呢: p { text-indent: -2em; margin-left: 2em; } 设置text-indent: -2em;以后p标签中第一行文字向左偏移,这样第二行开始的文字就等于缩进了, 但是这样设置会导致第一行向左超出div,所以再用margin-left使p标签整体右移即可, 不过也可以用 padding-left:2em ,这样IE8里也能显示。   from:https://www.cnblogs.com/lvyeconghua/p/9375817.html

龙生   14 Feb 2020
View Details

'cross-env' 不是内部或外部命令,也不是可运行的程序

运行: cnpm  i cross-env --save-dev   from:https://www.cnblogs.com/linsx/p/9353429.html

龙生   15 Jan 2020
View Details

JS-iframe高度自适应内容

iframe:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/iframe iframe 内容加载后不改变 使用:onload="this.height=this.contentWindow.document.documentElement.scrollHeight" 例如:

  iframe 内容加载后改变 定时改变 iframe 高度:

  例如:

  from:https://www.cnblogs.com/jffun-blog/p/9774121.html

龙生   15 Jan 2020
View Details

理解Vuex的辅助函数mapState, mapActions, mapMutations用法

在讲解这些属性之前,假如我们项目的目录的结构如下:

具体理解vuex的项目构建可以看这篇文章(https://www.cnblogs.com/tugenhua0707/p/9763177.html). 下面讲解的也是在这篇文章项目结构基础之上进行讲解的。当然如果你对 vuex熟悉的话,就不用看了,直接跳过即可。 注意:下面的代码都是在 webpack+vue+route+vuex 中构建的,可以把下面的代码 复制到该项目中运行即可。 一:理解mapState的使用 当我们的组件需要获取多个状态的时候,将这些状态都声明为计算属性会有些重复和冗余,为了解决这个问题,我们可以使用mapState的辅助函数来帮助我们生成计算属性。 mapState函数返回的是一个对象,我们需要使用一个工具函数将多个对象合并为一个,这样就可以使我们将最终对象传给computed属性。 上面的表述可能会有些模糊,下面我们来做个简单的demo来演示一下: 项目架构如上面示意图所示,先看看 app/index/store/state.js 代码如下:

app/index/store/mutations.js 代码如下:

app/index/store/mutations-types.js 代码如下:

app/index/store/index.js 代码如下:

app/index/store/actions.js 代码请看github 如上代码所示,现在我们在 app/index/views/parent.vue 这个路由下,在mounted生命周期打印一下 console.log(this);这句代码的时候,如下代码:

在浏览器运行后,如下图所示: 如果我们想获取add,或 count的时候,我们需要使用 this.store.state.add或this.store.state.add或this.store.state.count 这样的。 现在我们使用 mapState的话,代码就变成如下了:

如上代码,我们使用 mapState工具函数会将store中的state映射到局部计算属性中。 我们在mounted方法内,直接使用 this.xx 即可使用到对应computed中对应的属性了。也就是 我们使用 this.add 就直接映射到 this.$store.state.add 了 。 当然mapState也可以接受一个数组,如下简单代码:

然后我们再在控制台查看输出的this的值,如下: 可以看到,接受数组也是可以的,在mounted生命周期内,我们直接可以使用 this.add 或 this.counts 可以获取到值了。 切记:mapState的属性的时候,一定要和state的属性值相对应,也就是说 state中定义的属性值叫add,那么mapState就叫add,如果我们改成add2的话,就获取不到add的值了,并且add2的值也是 undefined,如下所示: 二:理解mapActions的使用 mapActions 的思想 和 mapState 一样的,下面我们直接看代码的使用方法哦,如下代码: 如果我们不使用 mapActions 的话,我们调用某个方法需要如下代码所示:

下面我们使用 mapActions的话,代码如下所示:

三:理解 mapMutations 的使用。 首先我们不使用 mapMutations的话,调用mutations里面的方法,是如下代码:

打印 如上 this代码后,看到如下图所示: 想获取值,使用 this.$store.state.add 就等于1了。 下面我们使用 mapMutations话,代码需要改成如下代码: […]

龙生   15 Jan 2020
View Details

【Vuex】mapGetters 辅助函数

mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性:

  如果你想将一个 getter 属性另取一个名字,使用对象形式:

扩展:ES6展开运算符 定义: .展开运算符允许一个表达式在某处展开。 使用场景 1.展开函数在多个参数的地方使用 。意指用于函数传参 2.多个元素的地方使用,意指用于数组字面量 3.多个边框的地方使用,意指用于解构赋值 注意事项 展开运算符不能用在对象当中,因为目前展开运算符只能在可遍历对象(iterables)可用。 iterables的实现是依靠[Symbol.iterator]函数,而目前只有Array,Set,String内置[Symbol.iterator]方法,而Object尚未内置该方法,因此无法使用展开运算符。不过ES7草案当中已经加入了对象展开运算符特性。 函数调用中使用展开运算符 之前实现方式

如上,我们把args数组当作实参传递给了a,b,c,这边正是利用了Function.prototype.apply的特性。 ES6实现方式  

  使用…展开运算符就可以把args直接传递给test()函数。 数组字面量中使用展开运算符 例如:两个数组合并为一个数组

用在push函数中,可以不用apply()函数合并2个数组

用于解构赋值 解构赋值也是ES6中的一个特性,而这个展开运算符可以用于部分情景: 展开运算符在解构赋值中的作用跟之前的作用看上去是相反的,将多个数组项组合成了一个新数组。

ps:   let [arg1,…arg2,arg3] = [1, 2, 3, 4]; //报错   即:解构赋值中展开运算符只能用在最后: 类数组对象变成数组 展开运算符可以将一个类数组对象变成一个真正的数组对象:

相关资料:https://vuex.vuejs.org/zh-cn/getters.html https://www.cnblogs.com/mingjiezhang/p/5903026.html http://es6.ruanyifeng.com/#docs/destructuring   作者:smile.轉角 QQ:493177502   from:https://www.cnblogs.com/websmile/p/8328138.html

龙生   15 Jan 2020
View Details

vue中created、mounted等方法整理

created:html加载完成之前,执行。执行顺序:父组件-子组件 mounted:html加载完成后执行。执行顺序:子组件-父组件 methods:事件方法执行 watch:watch是去监听一个值的变化,然后执行相对应的函数。 computed:computed是计算属性,也就是依赖其它的属性计算所得出最后的值  

  from:https://blog.csdn.net/liudoris/article/details/80255311

龙生   14 Jan 2020
View Details

CSS translate3d(x,y,z)

translate3d方法用来规定指定元素在三维空间中的位移。 用法比较简单,本文将通过一段代码实例动态演示translate3d的效果。 与二维空间位移相比多Z轴的位移,具体参阅CSS3 translate(x,y)一章节。 transform变换更多内容参阅CSS3 2D/3D转换一章节。 语法结构:

参数解析: (1).x:表示在x轴方向的位移。 (2).y:表示在y轴方向的位移。 (3).z:表示在z轴方向的位移。 代码实例如下:

上面的代码结合JavaScript演示了translate3d方法的功能。 特别说明:如果不使用perspective属性,将看不到z轴演示效果,因为3D场景就不会有景深的Z轴。 perspective属性参阅CSS3 perspective一章节。 translate3d方法也可以拆分单独写:

  from:http://www.softwhy.com/article-8720-1.html

龙生   04 Jan 2020
View Details

Vue HTML5 History 模式

vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。 如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。

  当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看! 不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。 所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。 #后端配置例子 #Apache

  除了 mod_rewrite,你也可以使用 FallbackResource。 #nginx

  #原生 Node.js

  #基于 Node.js 的 Express 对于 Node.js/Express,请考虑使用 connect-history-api-fallback 中间件。 #Internet Information Services (IIS) 安装 IIS UrlRewrite 在你的网站根目录中创建一个 web.config 文件,内容如下:

  #Caddy

  #Firebase 主机 在你的 firebase.json 中加入:

  #警告 给个警告,因为这么做以后,你的服务器就不再返回 404 错误页面,因为对于所有路径都会返回 index.html 文件。为了避免这种情况,你应该在 Vue 应用里面覆盖所有的路由情况,然后在给出一个 404 页面。

  或者,如果你使用 Node.js 服务器,你可以用服务端路由匹配到来的 URL,并在没有匹配到路由的时候返回 404,以实现回退。更多详情请查阅 Vue 服务端渲染文档。   from:https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%AD%90

龙生   03 Jan 2020
View Details
1 21 22 23 60