浅谈Angular7 项目开发总结


Posted in Javascript onDecember 19, 2018

由于公司需要,开始学习angular,这个传闻中学习曲线及其陡峭的前端框架,并开始写第一个用angular的项目,截止今天初步完成现有需求,顾在此做一次遇到问题的总结,以便知识的掌握。

一、在angular项目中,如何使用锚点

在常规项目中,使用锚点用来做"智能"定位效果时,只需这么写:

<a href="#test" rel="external nofollow" >走你</a>
<div id="test">被定位区域</div>

但是在ng中,a标签中的href属性会自动的使用路由机制,最后的结果会被当成跳转的路由地址,具体的原因有待进一步考证,反正最后的结果就是上面的写法不生效,生效写法:

<a router="./" [fragment]="test">来吧</a>
<div id="test">被定位区域</div>

二、组件中修改第三方UI库样式

之前中vue写项目的时候,会遇到组件风格与第三方UI库冲突的现象,用过vue的同学都了解,在vue中有个scoped这个作用域的概念,如果要自定义与UI库冲突的地方有以下几种方式:

  • 在App.vue文件中声名样式;
  • 在子组件中添加多个style标签;
  • 使用深度作用选择器—— '>>>';
    • scss:.a /deep/ .b {...}
    • stylus: .a <<< .b{...}

那么在ng中个什么情况呢?首先需要了解ng渲染组件的机制,在ng中有一个东东叫showDOM;

解决方法:

在组件的.ts文件中

import { ViewEncapsulation } from '@angular/core';

@Commpoent({
  ...
  encapsulation: ViewEncapsulation.None
})

如果这样还是覆盖不了,那就查查类名拼写啊、层级嵌套啊、和类名的位置,我曾经就是因为把类名加的位置不对导致样式不生效的,大家不要学我哟!

三、元素上添加自定义属性

vue写法

<li v-for="(item,index) in list" :index="index">{{item.title}}</li>

ng写法

<li *ngFor="let item of list; index as i" [attr.index]="i"></li>

四、不使用npm引入第三方插件的用法之一

很多时候,我们需要用的某个插件可能在npm上没有,或者由于各种版本问题,导致使用的时候会有乱七八糟的bug,找原因,去解决,费时费力;

用了ng才能明白,以前用vue的时候是多么的幸福,使用vue常规业务在国内基本都是即搜即用,ng就。。。嗯,学英语ing~。
解决方案:

  • 将如要用到的插件放入assets文件夹中;
  • 在根目录下的index.html中script引入;
  • 在应用的组件中使用(window as any).**;

ps: angular.json等其他方式也是可以的的,看各自实际情况而定;

五、监听滚动事件

使用Hostlistener`

@HostListener('window:scroll', ['$event'])
 public onScroll = () => {
  do something
 }

使用fromEvent

import { fromEvent } from 'rxjs'
 import { debounceTime } from 'rxjs/operators'
 export class Test{
  subscribeSoll;
  this.subscribeScoll = fromEvent(window,'scroll')
    .pipe(debounceTime(1000))
    .subscribe( (event) => {
      console.log(event);
    })
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
深入分析Cookie的安全性问题
Mar 01 Javascript
javascript实现简单的二级联动
Mar 19 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
Apr 15 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
Aug 05 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
Sep 19 Javascript
学习vue.js计算属性
Dec 03 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
Jan 20 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
javascript实现导航栏分页效果
Jun 27 Javascript
Vue快速实现通用表单验证功能
Dec 05 Javascript
js中!和!!的区别与用法
May 09 Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 #Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
Dec 19 #Javascript
vue使用Google地图的实现示例代码
Dec 19 #Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 #Javascript
vue动态绑定class选中当前列表变色的方法示例
Dec 19 #Javascript
js指定日期增加指定月份的实现方法
Dec 19 #Javascript
动态内存分配导致影响Javascript性能的问题
Dec 18 #Javascript
You might like
汉字转化为拼音(php版)
2006/10/09 PHP
php代码优化及php相关问题总结
2006/10/09 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
js常见表单应用技巧
2008/01/09 Javascript
js继承 Base类的源码解析
2008/12/30 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
js实现楼层导航功能
2017/02/23 Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
2017/02/28 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
Vue动态创建注册component的实例代码
2019/06/14 Javascript
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
小小聊天室Python代码实现
2016/08/17 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
python数字类型math库原理解析
2020/03/02 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
Python logging模块原理解析及应用
2020/08/13 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
大四毕业生学习总结的自我评价
2013/10/31 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
12岁生日演讲稿
2014/05/14 职场文书
转让协议书
2015/01/27 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书