浅谈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 相关文章推荐
prototype Element学习笔记(篇二)
Oct 26 Javascript
使用jQuery轻松实现Ajax的实例代码
Aug 16 Javascript
node.js实现逐行读取文件内容的代码
Jun 27 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
Aug 05 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
JavaScript贪吃蛇小组件实例代码
Aug 20 Javascript
微信小程序实现传参数的几种方法示例
Jan 10 Javascript
vue实现输入框自动跳转功能
May 20 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
Jul 30 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
Nov 01 Javascript
解决vue-cli输入命令vue ui没效果的问题
Nov 17 Javascript
JS中循环遍历数组的四种方式总结
Jan 23 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
咖啡的传说和历史
2021/03/03 新手入门
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
python+mysql实现简单的web程序
2014/09/11 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
Python实现的科学计算器功能示例
2017/08/04 Python
python实现k-means聚类算法
2018/02/23 Python
python和opencv实现抠图
2018/07/18 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
年终考核评语
2014/01/19 职场文书
取保候审保证书
2014/04/30 职场文书
小鞋子观后感
2015/06/05 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python