什么是虚拟dom捕获事件流是什么
1、1:锾哩菸谷全面理解虚拟DOM,实现虚拟DOM 的 超级简单概括:因为dom操作慢且复杂,但是js快,所以先用js渲染出敦饪测怙虚拟的dom树1,在将dom树一渲染到页面上为真实dom树2。然后想对dom的任何改动,先生成虚拟dom树2,先和虚拟dom树1作对比,这个对比的常规算法复杂度为O(n3)。对比中将改动的部分标记(包括属性,内容文本,替换(该标签),删除),最后一步修改。那么如何标记?如何修改?如何标记?加入needchange为一个需要改动的数组;needchange.push({ type: REPLACE, node: newNode });改变needchange.push({ type:REORDER,moves:changObj});新增needchange.push({ type: TEXT,content: newNode});改文本needchange.push({ type:PROPS,props: newProps});改属性如何修改?按照四种分类做不同的处理;进行最小化dom修改;比如只修改了class那么,就只改class而不重新渲染整个dom节点。具体文章详解:www.ituring.com.cn/article/211352
2、这样来理解vue官方的demo:<template v-if="loginType === 'username'"> <label>Username</label> <input placeholder="Enter your username"></template><template v-else> <label>Email</label> <input placeholder="Enter your email address"></template>两个 input切换只切换placeholder 不切换 用户输入js对比dom树时检测到两个节点的标签一样位置一样而只是属性改了,所以只改placeholder
3、2:xss攻击是什么??Vue官方文档说:动态渲染任意HTML,易导致XSS攻击。那么什么是“xss攻击”??首先命名由来:跨站脚本攻击(Cross-Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,所以将跨站脚本攻击缩写为XSS。原因:XSS漏洞的产生原因是Web应用未对用户提交请求的数据做充分的检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是“>”、“<”),并将未经转义的恶意代码输出到第三方用户的浏览器解释执行。目前的浏览器:测试在chrome上没有测出这个问题。据说新浪之前遇到此等攻击。
4、捕获事件与冒泡事件均为DOM事件流。如果在以下五个dom节点都加一个click事件,那么响应顺序为:冒泡事件:(视浏览器而定)从子到父从div --body--html -- document --window捕获事件与之相反:从父到子从 window-- document--html--body--div而所有的事件都会:从window捕获事件到window的冒泡事件结束,绕一圈;从父到子再从子到父走一遍
5、问:那么如何绑定或者区分冒泡或者捕获事件?答:原生的addEventListener(event,fn,useCapture)的第三个参数,true表示事件捕获,false表示事件冒泡。问:那么阻止冒泡或者捕获事件?答:阻止默认事件:preventDefault();阻止冒泡、捕获事件:stopPropagation()IE:阻止冒泡:cancelBubble = true;在捕获阶段stopPropagation();那么后面的冒泡和捕获都不会执行问:默认的点击事件是什么事件?答:默认的点击事件只有到了冒泡阶段时候的 target==currentTarget才绑定click事件;为什么?因为浏览器都兼容冒泡。讲的非常细致的具体示例:cnblogs.com/Chen-XiaoJun/p/6210987.html图片来自此文
6、有问题:留言有用:投票谢谢!!以上