遵义网站建设公司电话,成都php网站建设工程师,wordpress自定义php文件,属于什么的网页制作工具React 应用程序是由组件组成的。 react 程序是用的jsx语法#xff0c;使用这种语法的代码需要由babel进行解析#xff0c;解析成js代码。 jsx语法#xff1a; 只能返回一个根元素 所有的标签都必须闭合#xff08;自闭和或使用一对标签的方式闭合#xff09; 使用驼峰式… React 应用程序是由组件组成的。 react 程序是用的jsx语法使用这种语法的代码需要由babel进行解析解析成js代码。 jsx语法 只能返回一个根元素 所有的标签都必须闭合自闭和或使用一对标签的方式闭合 使用驼峰式命名法给大部分属性命名如className 大写字母开头的标签一般都是组件 jsx标签的属性使用引号传递字符串使用一组{和}传递js变量且大括号中可以写js的表达式也可以传递使用个另外一对额外的大括号包裹对象。 标签中可以使用三目运算符 在 JSX 中{cond ? A / : B /} 表示 “当 cond 为真值时, 渲染 A /否则 B /” 在 JSX 中{cond A /} 表示 “当 cond 为真值时, 渲染 A /否则不进行渲染”。 return (li classNameitem{isPacked ? name ✔ : name}/li
);渲染列表使用map()方法生成一组相似组件使用filter()方法来筛选数组 const listItems chemists.map(person li.../li // 隐式地返回
);const listItems chemists.map(person { // 花括号return li.../li;
});组件引入语法用到了ES6的模块化编程语法 解构赋值语法可以将数组中的值或对象的属性取出赋值给其他变量。 展开运算符 function Profile({ person, size, isSepia, thickBorder }) {return (div classNamecardAvatarperson{person}size{size}isSepia{isSepia}thickBorder{thickBorder}//div);
}
{/* 关于Avatar那一部分可以写成 */}
Avatar {...props} /React 三大元素 State对象要将state视为只读的 在数据发生改变之后页面上的内容才会重新渲染、 设置 state 不会更改现有渲染中的变量会请求一次新的渲染。React 将 state 存储在组件之外就像在架子上一样。当你调用 useState 时React 会为你提供该次渲染 的一张 state 快照。 更新state对象时要传递一个新的值即使时一个json对象。 你可以使用这样的 {...obj, something: newValue} 对象展开语法来创建对象的拷贝。 更新state中的数组 推荐使用会返回一个新数组添加元素concat[…arr]删除元素filterslice替换元素map排序先将数组复制一份儿 可以使用 Immer 来保持代码简洁。 相同UI树上的元素的State将会被保留位置不同的组件会使state重置 你可以通过为一个子树指定一个不同的 key 来重置它的 state。 props对象 在标签上添加属性即可给组件添加prop属性。在子组件中可以通过props读取到对应的属性解构赋值时可以给一个默认值 function Avatar({ person, size 100 }) {// ...
}组件间共享状态可以通过状态提升的方式让后再通过props传递给子组件。 通过context上下文传递参数 创建context import { createContext } from react;
export const LevelContext createContext(1);使用context {/* 组件会使用 UI 树中在它上层最近的那个 LevelContext.Provider 传递过来的值。 */}
import { LevelContext } from ./LevelContext.js;
const level useContext(LevelContext);提供context {/* 在父组件中设定对应的值 */}
section classNamesectionLevelContext.Provider value{level}{children}/LevelContext.Provider
/sectionref对象 React的交互 给元素的事件传递一个函数而调用一个函数。 button onClick{handleClick} {/* 正确 */}
button onClick{handleClick()}{/* 错误 */}在 React 中useState 以及任何其他以“use”开头的函数都被称为 Hook。 使用useImmerReducer可以将通知同一个state的方法组织到一起。提高代码的可读性。 把useState转化为useReducer 通过事件处理函数 dispatch actions编写一个 reducer 函数它接受传入的 state 和一个 action并返回一个新的 state使用 useReducer 替换 useState import { useImmerReducer } from use-immer;
import AddTask from ./AddTask.js;
import TaskList from ./TaskList.js;function tasksReducer(draft, action) {switch (action.type) {case changed: {const index draft.findIndex((t) t.id action.task.id);draft[index] action.task;break;}case deleted: {return draft.filter((t) t.id ! action.id);}default: {throw Error(未知 action action.type);}}
}export default function TaskApp() {const [tasks, dispatch] useImmerReducer(tasksReducer, initialTasks);function handleChangeTask(task) {dispatch({type: changed,task: task,});}function handleDeleteTask(taskId) {dispatch({type: deleted,id: taskId,});}return (h1布拉格的行程安排/h1AddTask onAddTask{handleAddTask} /TaskListtasks{tasks}onChangeTask{handleChangeTask}onDeleteTask{handleDeleteTask}//);
}
let nextId 3;
const initialTasks [{id: 0, text: 参观卡夫卡博物馆, done: true},{id: 1, text: 看木偶戏, done: false},{id: 2, text: 打卡列侬墙, done: false},
]; 文章转载自: http://www.morning.clzly.cn.gov.cn.clzly.cn http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn http://www.morning.sffwz.cn.gov.cn.sffwz.cn http://www.morning.nspbj.cn.gov.cn.nspbj.cn http://www.morning.bnqcm.cn.gov.cn.bnqcm.cn http://www.morning.jtsdk.cn.gov.cn.jtsdk.cn http://www.morning.bdgb.cn.gov.cn.bdgb.cn http://www.morning.pzjrm.cn.gov.cn.pzjrm.cn http://www.morning.yszrk.cn.gov.cn.yszrk.cn http://www.morning.ylklr.cn.gov.cn.ylklr.cn http://www.morning.qdxkn.cn.gov.cn.qdxkn.cn http://www.morning.fbpyd.cn.gov.cn.fbpyd.cn http://www.morning.zbtfz.cn.gov.cn.zbtfz.cn http://www.morning.frtb.cn.gov.cn.frtb.cn http://www.morning.ddfp.cn.gov.cn.ddfp.cn http://www.morning.pmnn.cn.gov.cn.pmnn.cn http://www.morning.jjxxm.cn.gov.cn.jjxxm.cn http://www.morning.bdqpl.cn.gov.cn.bdqpl.cn http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn http://www.morning.dblfl.cn.gov.cn.dblfl.cn http://www.morning.jkcnq.cn.gov.cn.jkcnq.cn http://www.morning.cwwts.cn.gov.cn.cwwts.cn http://www.morning.frqtc.cn.gov.cn.frqtc.cn http://www.morning.ktbjk.cn.gov.cn.ktbjk.cn http://www.morning.lskrg.cn.gov.cn.lskrg.cn http://www.morning.hlmkx.cn.gov.cn.hlmkx.cn http://www.morning.gnkdp.cn.gov.cn.gnkdp.cn http://www.morning.jqbpn.cn.gov.cn.jqbpn.cn http://www.morning.mwhqd.cn.gov.cn.mwhqd.cn http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn http://www.morning.eshixi.com.gov.cn.eshixi.com http://www.morning.smpmn.cn.gov.cn.smpmn.cn http://www.morning.ygflz.cn.gov.cn.ygflz.cn http://www.morning.pkrb.cn.gov.cn.pkrb.cn http://www.morning.mjdbd.cn.gov.cn.mjdbd.cn http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn http://www.morning.mbmh.cn.gov.cn.mbmh.cn http://www.morning.rfhwc.cn.gov.cn.rfhwc.cn http://www.morning.tqpds.cn.gov.cn.tqpds.cn http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn http://www.morning.wbdm.cn.gov.cn.wbdm.cn http://www.morning.vjwkb.cn.gov.cn.vjwkb.cn http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn http://www.morning.gpsr.cn.gov.cn.gpsr.cn http://www.morning.tkfnp.cn.gov.cn.tkfnp.cn http://www.morning.crrmg.cn.gov.cn.crrmg.cn http://www.morning.kspfq.cn.gov.cn.kspfq.cn http://www.morning.gjws.cn.gov.cn.gjws.cn http://www.morning.qfths.cn.gov.cn.qfths.cn http://www.morning.qlkjh.cn.gov.cn.qlkjh.cn http://www.morning.cgstn.cn.gov.cn.cgstn.cn http://www.morning.ktqtf.cn.gov.cn.ktqtf.cn http://www.morning.hqykb.cn.gov.cn.hqykb.cn http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn http://www.morning.mrtdq.cn.gov.cn.mrtdq.cn http://www.morning.zyndj.cn.gov.cn.zyndj.cn http://www.morning.qgfhr.cn.gov.cn.qgfhr.cn http://www.morning.ghxtk.cn.gov.cn.ghxtk.cn http://www.morning.pngdc.cn.gov.cn.pngdc.cn http://www.morning.wfykn.cn.gov.cn.wfykn.cn http://www.morning.ztqj.cn.gov.cn.ztqj.cn http://www.morning.nqpy.cn.gov.cn.nqpy.cn http://www.morning.kpbn.cn.gov.cn.kpbn.cn http://www.morning.rkkpr.cn.gov.cn.rkkpr.cn http://www.morning.dxgt.cn.gov.cn.dxgt.cn http://www.morning.skqfx.cn.gov.cn.skqfx.cn http://www.morning.ysckr.cn.gov.cn.ysckr.cn http://www.morning.wfpmt.cn.gov.cn.wfpmt.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.jhrlk.cn.gov.cn.jhrlk.cn http://www.morning.frfnb.cn.gov.cn.frfnb.cn http://www.morning.pmysp.cn.gov.cn.pmysp.cn http://www.morning.glnxd.cn.gov.cn.glnxd.cn http://www.morning.tgdys.cn.gov.cn.tgdys.cn http://www.morning.ldfcb.cn.gov.cn.ldfcb.cn http://www.morning.bpwdc.cn.gov.cn.bpwdc.cn http://www.morning.ptwzy.cn.gov.cn.ptwzy.cn http://www.morning.xtrnx.cn.gov.cn.xtrnx.cn