根据pdf或word 文档的地址链接打印文件内容 需求点击一个按钮,可以打印后端返回的一个pdf或者word 文档的地址思路点击打印可以弹出一个预览modal然后通过iframe先预览打印内容实现如果是pdf文件src直接为下载地址<iframe src="https://invtest.nntest.cn/fp/Pj_EV98RTt2gGddvGE24TIn6PCvHnCTeScQGyVchKHNcHWCDxjkofCEY3KXuN3GhVkeWSVc7DYwDDQVZUAR8Jw.pdf" width="600" height="
React Hooks 中useContext api的用法 创建一个react项目可以参考:https://blog.csdn.net/weixin_43398820/article/details/123776338背景正常组件之间传递属性如下图所示:app.js中有个全局属性theme,如果想把theme对象作为属性传递到其它子组件中:Header->User->Button如果不用hooks可以像上面那样一层一层的传递下去。useContext的使用useContext主要解决组件多层传递属性的问题,使用useContext就可以在
React自定义hooks学习 创建一个react项目可以参考:https://blog.csdn.net/weixin_43398820/article/details/123776338使用自定义hooks实现2个小例子例1 获取鼠标当前坐标的自定义hooks新建src–>hook->useMousePosition.tsx文件注:自定义hooks必须以set命名import React,{useState,useEffect} from "react";//因为要返回positions对象所以函数不能
React Hooks 中useEffect api的用法 创建一个react项目可以参考:https://blog.csdn.net/weixin_43398820/article/details/1237763381. 使用useEffect实现标题更新(无需清除的副作用)import react,{useState,useEffect} from 'react';const LikeButton: react.FC = ()=>{ //like为一个变量默认值为0,setLike更新like的函数 const [like,set
React Hooks 中useState api的用法 利用hooks中的useState实现一个点赞按钮创建一个react项目可以参考:https://blog.csdn.net/weixin_43398820/article/details/123776338在src目录下新建一个components–>LikeButton.tsx文件import react,{useState} from 'react';const LikeButton: react.FC = ()=>{ //like为一个变量默认值为0,setLik
react+typescript 编写一个简单的hello world 开发环境配置利用create-react-app脚手架创建一个支持typescript语法的项目create-react-app官方文档地址:https://create-react-app.bootcss.com/docs/getting-started执行安装命令npx create-react-app my-app --template typescript注:最新的版本的npm需要加上–templatenpx是在安装npm5.2.0+时自动安装的简单了解了一下:npx 会自动查
css根据元素中子元素的个数设置不同的样式 背景一个div中图片的尺寸根据后台返回的个数决定,要求:一张图片尺寸690px;2张图片每张占320px,4张图片两行展示,每行2张各占320px。大于3张图片,每行3张排列,每张图片各占200px。实现效果...
手动实现一个输入框组件 背景taro h5中想要实现一个样式如下的输入框:问题:taro组件和taro-ui组件中都没有这种样式的组件,taro h5 中还不支持修改placeholder的样式,自己尝试着实现一个input组件,更能灵活的定义其中的样式。实现js代码import Taro, { Component } from '@tarojs/taro';import { View } from '@tarojs/components';import { AtIcon } from 'taro-ui';i
taro将页面滚动到指定位置 背景实现点击一个按钮可以滚动到当前页面的指定位置。问题首先想到使用taro自己的api (pageScrollTo)实现滚动,查看文档发现selector 参数刚好是自己需要的。(https://taro-docs.jd.com/taro/docs/2.x/apis/ui/scroll/pageScrollTo)然后就写了一个简单的函数function scrollIntoView (id) { Taro.pageScrollTo({ selector: '#id', })
taro中多行文本的展开和隐藏 实现效果:import { Text, View } from "@tarojs/components";import Taro, { Component } from "@tarojs/taro";import classNames from "classnames";import "./index.scss";const isH5 = process.env.TARO_ENV === "h5";class Test extends Component { state = {
小程序中文本自动换行 后端返回的文本自动换行要求后端返回的文本在需要换行的地方增加原生小程序中直接使用text标签即可,text中的文本遇到会自动换行。 // data: { // message:'这是第一个换行;,这是第二个换行;这是第三个换行;' // },<text>{{message}}</text>taro框架中换行 // state = { // message: "这是第一个换行;,这是第二个换行;这是第三个换行;\
JSON的解析和序列化 JSON的解析和序列化JSON.stringify()把一个JS对象序列化为一个JSON字符串。stringify()函数的基本用法该函数可以接受三个参数。第一个必填参数为需要序列化的JS对象,第二个可选参数是过滤器,可以是数组或者函数;第三个可选参数是用于缩进结果JSON字符串的选项。const people = { name: 'petter', age: 22, job: 'doctor', hobby: ['run', 'music', 'swim'
《JavaScript高级程序设计》-- 初识对象 ECMAScript 中的对象可以理解成一个散列表,其中的内容就是一组名/值对,值可以是数据或者函数var person = { name:'petter', age:26, job: 'software engineer', sayName(){ console.log(this.name); }}console.log(person.job) //software engineerperson.sayName(); //petter创建了一个名为person的对象,包
《JavsScript高级程序设计》-- 函数 文章目录函数定义函数的参数默认参数值参数扩展与收集函数作为值传递函数内部argumentsthiscallernew.target函数的方法函数定义函数声明function sum(a,b) { return a+b;}函数表达式let sum = function(a,b){ return a+b;};与变量初始化一样,函数末尾有分号,该函数可以通过变量sum引用箭头函数let sum = (a,b)=>{ return a+b;};
css 特指度的计算 css 特指度的计算概述同一个元素可能会被多个规则选择,如果每个规则的选择符都不尽相同,那么如何选择最终匹配的规则呢? /* h1标签显示绿色 */ body h1{ color: green; } h1 { color: gray; } /* h2显示红色 */ h2.grape{ color: red; } h2{ color: purple; } /* h3标签显示黄色 */ #answer{ color: y
《JavaScript高级程序设计》-- Map Map数据结构是ES6新增的,主要实现对“键/值”式存储,与Object只能使用数值、字符串、符号作为键不同,map可以使用任何JavaScript数据类型作为键。创建创建一个空映射const m = new Map()m instanceof Map //true创建的同时初始化实例,传入的参数需要时可迭代的对象,包含键值对数组。const m1 = new Map( [ ['key1','val1'], ['key2','val2'] ]);console.log(
Map和Object的性能对比 Map和Object的性能比较内存占用存储单个键/值对所占用的内存数量都会随着键的数量线性增加。给定固定大小的内存,Map大约可以比Object多存储50%的键/值对。插入性能向Object和Map中插入新键/值对的消耗大致相当,当涉及到大量的插入操作时,Map的性能更佳function initObj(){ let obj = new Object(); let begin = Date.now(); for(let i=0;i<1000000;i++) { obj['num'+