浅谈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 相关文章推荐
如何获取JQUERY AJAX返回的JSON结果集实现代码
Dec 10 Javascript
jquery高效反选具体实现
May 05 Javascript
js 为label标签和div标签赋值的方法
Aug 08 Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
jQuery实现的导航条切换可显示隐藏
Oct 22 Javascript
js函数内变量的作用域分析
Jan 12 Javascript
jQuery实现自定义checkbox和radio样式
Jul 13 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
Dec 24 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
用iframe实现不刷新整个页面上传图片的实例
Nov 18 Javascript
基于JavaScript实现带缩略图的轮播效果
Jan 12 Javascript
JS实现的数组去除重复数据算法小结
Nov 17 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如何解决网站大流量与高并发的问题
2011/06/25 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
点击文章内容处弹出页面代码
2009/10/01 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
纯javascript版日历控件
2016/11/24 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
Django中几种重定向方法
2015/04/28 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Django中提示消息messages的设置方式
2019/11/15 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
Python集合操作方法详解
2020/02/09 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
个人生活学习自我评价范文
2013/11/26 职场文书
学校大课间活动方案
2014/01/30 职场文书
怎样填写就业意向
2014/04/02 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
《画家乡》教学反思
2014/04/22 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers