浅谈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 相关文章推荐
js prototype 格式化数字 By shawl.qiu
Apr 02 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
Aug 29 Javascript
node.js中的path.normalize方法使用说明
Dec 08 Javascript
js实现多选项切换导航菜单的方法
Feb 06 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
Aug 21 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
May 17 Javascript
jquery 抽奖小程序实现代码
Oct 12 Javascript
JS实现弹出下载对话框及常见文件类型的下载
Jul 13 Javascript
基于LayUI实现前端分页功能的方法
Jul 22 Javascript
vue实现鼠标移入移出事件代码实例
Mar 27 Javascript
jQuery实时统计输入框字数及限制
Jun 24 jQuery
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实现用于计算执行时间的类实例
2015/04/18 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
php 实现进制相互转换
2016/04/07 PHP
常用PHP封装分页工具类
2017/01/14 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
jquery实现Ctrl+Enter提交表单的方法
2015/07/21 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
python妙用之编码的转换详解
2017/04/21 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
python实现微信打飞机游戏
2020/03/24 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
一套C#面试题
2013/10/09 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
外语专业毕业生自我评价分享
2013/10/05 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis