帮助 Tree-Shake(树摇)
您会发现下面所有的示例都从 Quasar 中导入了不同的内容。然而,如果您只需要某个特定的工具函数,可以使用 ES6 的解构语法来帮助更好地 Tree Shaking,使最终的构建产物中只嵌入该函数,而不是全部内容。
以 dom 工具函数为例:
import { dom } from "quasar";
const { offset } = dom;
// Offset on screen
console.log(offset(DomElement));
// { top: 10, left: 100 }content_paste
您也可以像下面这样导入所有的 dom 工具函数并随意使用(但这样,您的构建产物中也会包含没有用到的函数):
import { dom } from "quasar";
// Offset on screen
console.log(dom.offset(DomElement));
// { top: 10, left: 100 }content_paste
TIP
有关 UMD 版本的用法,请看这里。
屏幕视口上的偏移量
import { dom } from "quasar";
const { offset } = dom;
// Offset on screen
console.log(offset(DomElement));
// { top: 10, left: 100 }content_paste
获取计算后的样式
这仅在 DOM 元素可见时适用!它返回浏览器计算出的样式,所以您查询的属性不一定是通过 style 属性直接设置的。
import { dom } from "quasar";
const { style } = dom;
// 获取浏览器计算后的样式(当 DOM 元素可见时!)
// "计算后"意味着一个 DOM 元素可能没有设置 "height" CSS 属性,
// 但它在显示时仍然有一个高度。
// 下面的方法可以获取浏览器提供的计算后的 CSS:
console.log(style(DomElement, "height"));
// '10px' <<< 注意返回的字符串以 'px' 结尾content_paste
获取高度/宽度
import { dom } from "quasar";
const { height, width } = dom;
// 此函数是上面函数的别名封装,用于更方便地获取 "width" 和 "height",
// 返回数字而不是字符串:
console.log(height(DomElement), width(DomElement));
// 10 100content_paste
批量应用 CSS 属性
import { dom } from "quasar";
const { css } = dom;
// 给 DOM 元素应用一组 CSS 属性:
css(DomElement, {
height: "10px",
display: "flex",
});content_paste
当 DOM 准备好时执行
import { dom } from "quasar";
const { ready } = dom;
// 当 DOM 准备好时执行一个函数:
ready(function () {
// ....
});content_paste
处理 DOM 事件
跨浏览器兼容。
import { event } from 'quasar'
node.addEventListener('click', evt => {
// 是否左键点击?
(Boolean) event.leftClick(evt)
// 是否中键点击?
(Boolean) event.middleClick(evt)
// 是否右键点击?
(Boolean) event.rightClick(evt)
// 数字格式的按键值
(Number) event.getEventKey(evt)
// 鼠标滚轮距离(像素)
(Object {x, y}) event.getMouseWheelDistance(evt)
// 视口上的位置
// 同时支持鼠标事件和触摸事件!
(Object {top, left}) event.position(evt)
// 获取鼠标或触摸事件触发时所在的目标 DOM 元素
(DOM Element) event.targetElement(evt)
// 调用 stopPropagation 和 preventDefault
event.stopAndPrevent(evt)
})content_paste