Tạo kiểu đối tượng thành chuỗi css
Trong một tiếp theo. dự án dựa trên js Tôi đang làm việc Tôi nhận thấy tệp Nội dung của
Đã chuyển đổi thành Thuộc tính tùy chỉnh, tôi muốn cái này
~ Để dịch các mục như 0 sang 1, tôi quyết định tạo một công cụ trợ giúp nhỏ. Nó tự động thêm tiền tố 2 cần thiết, điều chỉnh tất cả các lần xuất hiện của camelCase thành trường hợp kebab và hoạt động tốt với các đối tượng lồng nhau và mảng (đơn giản)Có lẽ công cụ này cũng có thể hữu ích cho bạn 🙂 ~ Điều này có giúp ích gì cho bạn không? . Tôi không làm điều này vì lợi nhuận nhưng một khoản quyên góp nhỏ một lần chắc chắn sẽ khiến tôi mỉm cười. Cảm ơn Dự án này được lấy cảm hứng từ một số công việc với thư viện 💅styled components. Khi tạo một thành phần mà tôi sẽ không bao giờ sử dụng, tôi cần cung cấp cho người tiêu dùng cách truyền lại các kiểu mà sau đó tôi có thể hợp nhất thành các định nghĩa thành phần khác nhau cùng với các quy tắc css của riêng tôi Để đề phòng, gói này cũng cho thấy khả năng truy cập hoặc tạo các trình phân tích cú pháp bổ sung mà sau đó có thể được sử dụng với chức năng xuất chính hoặc dưới dạng các hàm phân tích cú pháp chuỗi độc lập Cách sử dụngSử dụng cơ bảnKhông có thành phần kiểu dángimport styleToCss from 'style-obj-to-css-string'; // I now regret my choice in package name const styles = { display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', }; const styleString = styleToCss(styles); /** * Generates all values as a single semicolon separated string * "display: flex;flex-direction: column;align-items: center;justify-content: center;" */ Với💅styled-thành phầnimport styled from 'styled-components'; import styleToCss from 'style-obj-to-css-string'; const StyledThingy = styled.p` ${/* Place properties that you will allow to be overwritten here - typically stylistic properties */} color: meduimaquamarine; font-size: 1rem; background-color: thistle; ${props => props.styles && styleToCss(props.styles) /* we check for styles to avoid an invocation with undefined. may be fixed with future pull requests. */} ${/* Place properties that you will not allow to change here - typically structural properties */} display: block; margin: 1rem; grid-column: 1 / -1; `; Sử dụng nâng caoThư viện này cũng có thể hữu ích trong việc phân tích cú pháp JSON từ các máy chủ có thể sử dụng các quy ước chữ hoa chữ thường khác. Chỉ cần đưa vào danh sách 3 của chúng tôi trong quá trình nhập của bạn hoặc tạo danh sách của riêng bạn với chức năng 4 của chúng tôitrình phân tích cú pháp - Một đối tượng chứa nhiều phương thức phân tích cú pháp
createParser - Hàm trả về hàm phân tích cú pháp
import styleToCss, { parsers, createParser } from 'style-to-css-string'; import axios from 'axios'; const kebabToCamel = createParser(/-[a-z]/, match => match.split('')[1].toUpperCase()); async function getStyleObj(path) { const style = await axios.get(path); const styleString = styleToCss(style, parsers.snakeToKebab); } Đóng gópLà gói mã nguồn mở đầu tiên của tôi, kho lưu trữ này được trang bị quá công cụ ở mức tối đa chỉ để xem những gì có thể - vui lòng tạo các sự cố cụ thể xung quanh các công cụ mà tôi đang sử dụng và cấu hình của chúng Bắt đầuDự án này được viết bằng Node phiên bản 10 và npm phiên bản 6 - trong khi hoạt động bên ngoài các ràng buộc này vẫn ổn, bạn có thể thử sử dụng các phiên bản này để có sự đồng nhất. Với nvm được cài đặt, chỉ cần chạy 5 để đọc từ. tập tin nvmrcBắt đầu rất đơn giản, chỉ cần rẽ nhánh và sao chép kho lưu trữ, sau đó chạy các lệnh sau trong thiết bị đầu cuối của bạn. Tập lệnh xác thực sẽ chạy bản dựng, thử nghiệm và kẻ nói dối và là tập lệnh sẽ chạy trước khi bạn cam kết và đẩy $ cd style-object-to-css-string $ npm run install $ npm run validate # will show a slew of commands that are being run # will show the current test coverage report for the repository cam kếtTôi sử dụng commitlint để lint git cam kết theo nhật ký thay đổi thông thường. Nếu bạn lười biếng như tôi, vui lòng sử dụng commitizen cli với cài đặt của riêng bạn hoặc với 6 - nếu cam kết của bạn vẫn không tuân theo các quy tắc của cam kết, bạn có thể chạy 7🔥Trong trường hợp khẩn cấp🔥Đề phòng trường hợp có điều gì đó xảy ra buộc bạn phải la hét chạy khỏi máy tính, chỉ cần chạy 8, thao tác này sẽ tạo một nhánh mới gọi là "khẩn cấp", cam kết tất cả các thay đổi hiện tại của bạn, sau đó đẩy chúng sang một nhánh mới trên điều khiển gốc của bạn. 🚒 |