范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

19Vue入门教程Vue渲染函数

  1. 简介
  本小节我们将介绍 Vue 渲染函数。包括什么是渲染函数、虚拟 DOM、如何编写渲染函数。渲染函数是一个难点,通常在一些简单的项目中不会使用,在处理一些复杂的业务场景时,使用渲染函数往往可以达到事半功倍的效果。
  通过本小节的学习我们可以掌握渲染函数的基本用法,如果同学们学完本小节之后对此还不是特别熟悉也没有关系,我们可以先将基础知识融会贯通,然后再对该知识点多加练习,相信同学们一定可以熟练掌握。 2. 基础
  Vue 推荐在绝大多数情况下使用模板来创建你的 HTML。然而在一些场景中,你真的需要 JavaScript 的完全编程的能力。这时你可以用渲染函数,它比模板更接近编译器。
  让我们用一个简单的例子来学习,这个例子里 render 函数很实用。假设我们要生成一些带锚点的标题,标题的尺寸和锚点的地址需要通过属性传递,最终生成如下格式的 DOM 结构: 

Hello world!

  同学们肯定觉得这不是很简单吗,于是写下了如下示例:   实例演示 Document Hello world! Hello world! Hello world!   "运行案例" 可查看在线运行效果   代码解释: JS 代码第 2-33 行,我们定义了组件的模板,通过 v-if 根据传入的 level 来控制显示的标签元素。 JS 代码第 34-46 行,我们定义了组件 anchored-heading,接收 level 和 href 两个属性参数。 HTML 代码第 2-4 行,使用了组件 anchored-heading。   上述代码虽然实现了功能,但是代码冗长,而且在每一个级别的标题中重复书写了 。那么如何才能消除这些冗余的代码呢?我们来尝试使用 render 函数重写上面的例子:   实例演示 Document Hello world! Hello world! Hello world!   "运行案例" 可查看在线运行效果   通过 render 函数编写的组件看起来简单多了!同学们可能暂时还不太理解这段代码的含义,createElement 是什么? 这些参数又表示什么含义?我们先带着这些疑问继续往下学习。 3. 虚拟 DOM   Vue 通过建立一个虚拟 DOM 来追踪自己要如何改变真实 DOM。请仔细看这行代码: return createElement("h1", this.blogTitle)   createElement 到底会返回什么呢?其实不是一个实际的 DOM 元素。它更准确的名字可能是 createNodeDescription,因为它所包含的信息会告诉 Vue 页面上需要渲染什么样的节点,包括及其子节点的描述信息。我们把这样的节点描述为 "虚拟节点 (virtual node)",也常简写它为 "VNode"。"虚拟 DOM" 是我们对由 Vue 组件树建立起来的整个 VNode 树的称呼。 4. createElement 参数   接下来你需要熟悉的是如何在 createElement 函数中使用模板中的那些功能。这里是 createElement 接受的参数: createElement( // {String | Object | Function} // 一个 HTML 标签名、组件选项对象,或者 // resolve 了上述任何一种的一个 async 函数。必填项。 "p", // {Object} // 一个与模板中属性对应的数据对象。可选。 { // (详情见下一节) }, // {String | Array} // 子级虚拟节点 (VNodes),由 `createElement()` 构建而成, // 也可以使用字符串来生成"文本虚拟节点"。可选。 [ "先写一些文字", createElement("h1", "一则头条"), createElement(MyComponent, { props: { someProp: "foobar" } }) ] )   也就是说,我们通过 createElement 函数来递归创建我们的节点标签。 5. 深入数据对象   有一点要注意:正如 v-bind:class 和 v-bind:style 在模板语法中会被特别对待一样,它们在 VNode 数据对象中也有对应的顶层字段。该对象也允许你绑定普通的 HTML attribute,也允许绑定如 innerHTML 这样的 DOM 属性 (这会覆盖 v-html 指令)。 { // 与 `v-bind:class` 的 API 相同, // 接受一个字符串、对象或字符串和对象组成的数组 "class": { foo: true, bar: false }, // 与 `v-bind:style` 的 API 相同, // 接受一个字符串、对象,或对象组成的数组 style: { color: "red", fontSize: "14px" }, // 普通的 HTML attribute attrs: { id: "foo" }, // 组件 prop props: { myProp: "bar" }, // DOM 属性 domProps: { innerHTML: "baz" }, // 事件监听器在 `on` 属性内, // 但不再支持如 `v-on:keyup.enter` 这样的修饰器。 // 需要在处理函数中手动检查 keyCode。 on: { click: this.clickHandler }, // 仅用于组件,用于监听原生事件,而不是组件内部使用 // `vm.$emit` 触发的事件。 nativeOn: { click: this.nativeClickHandler }, // 自定义指令。注意,你无法对 `binding` 中的 `oldValue` // 赋值,因为 Vue 已经自动为你进行了同步。 directives: [ { name: "my-custom-directive", value: "2", expression: "1 + 1", arg: "foo", modifiers: { bar: true } } ], // 作用域插槽的格式为 // { name: props => VNode | Array } scopedSlots: { default: props => createElement("span", props.text) }, // 如果组件是其它组件的子组件,需为插槽指定名称 slot: "name-of-slot", // 其它特殊顶层属性 key: "myKey", ref: "myRef", // 如果你在渲染函数中给多个元素都应用了相同的 ref 名, // 那么 `$refs.myRef` 会变成一个数组。 refInFor: true }   现在我们再来回顾上述的例子是不是很简单? 首先,我们通过 createElement 函数创建 h 标签; 它的子集是 createElement 函数创建的 a 标签; a 标签的子集是通过 this.$slots.default 获取的默认插槽。 6. 小结   本节,我们带大家学习了 Vue 渲染函数的使用方法。主要知识点有以下几点: 使用渲染函数 render 代替 template 模板。 虚拟 DOM 的定义,createElement 函数的使用。

人工智能下的证件识别软件我十年前学过开发,现在人工智能的发展,我又想返回到开发上,这是一个曾经在代码边缘徘徊过的人,目前的真实而又迫切的想法,人工智能的发展愈发迅猛,我们的周边人工智能产物愈发变多。可以说2022年初,华为Mate50Pro又来预热,至少有五个惊喜众所周知,手机行业进步的速度非常快,越早发布就越容易占得先机,目前已经有非常多的新机在路上了,同时也有很多的手机厂商进行了官宣,只为抢先一步。只不过对于华为手机来说,目前已经没有办谷爱凌的父亲不是谷歌5号员工,但母亲一家都是高学历的运动健将梦晨金磊发自凹非寺量子位公众号QbitAI谷爱凌这个名字,如今已经全网刷爆。原因无他,在冬奥赛场上一跳实现惊天逆转,为中国队历史性拿下自由式滑雪女子大跳台金牌,这样一位颜值与才华都ajaxPHPExcel下载ExcelHTMLreturnttlpcs。join()jqueryfunctiontrkdetail(qmth,qslic,qtype)varurljsondiadputrkdownloa乔布斯传神一样的传奇乔布斯给苹果公司带来的改变是巨大的。在各个方面他都是一个聪明的人,他懂得商业概念和营销概念,接受新事物的速度很快,他比任何人都更为理解苹果公司的核心理念一个具有强烈个性的人身上集合马云的傻银行,出事了作者张生来源鸣金网蚂蚁连遭劫难,原来只是开始。马云的麻烦,还远没有到头!一hr2022年互联网银行第一炸,还是轮到了马云头上!2月8日,据央行公开处罚信息显示,浙江网商银行涉及四项沃尔沃计划投资100亿瑞典克朗在瑞典生产下一代纯电动车中新财经2月9日电(记者彭大伟)沃尔沃汽车8日表示,其将在未来数年内于其位于瑞典Torslanda的制造工厂投资100亿瑞典克朗,为生产下一代纯电动汽车做好准备。沃尔沃汽车集团是世邮政推出存1万送电动车活动,是惊喜还是陷阱?要不要参与?近两年,疫情的影响十分严重,我国虽然疫情目前攻克得很好了,但是有很多的公司因此倒闭,有的大公司坚持了下来,可业绩也变得一般了。于是很多公司为了恢复经济就会推出许多的活动,这些活动就我国小麦基因组编辑抗病育种获突破本报北京2月10日电(记者齐芳)抗病的品种往往难高产,高产的品种抗病性差这个大自然的法则给人类育种带来极大困扰。我国科学家持续开展科研攻关,阐明小麦新型mlo突变体既抗白粉病又高产腾讯影业大调整,主体将并入CDG鞭牛士2月10日消息,据界面新闻报道,腾讯影业的主体部分将从PCG(平台与内容事业群)被调整进入CDG(企业发展事业群),同时腾讯集团副总裁阅文CEO程武将继续领导该业务板块,相关为什么有些上市企业都会选择在开曼群岛设立公司呢?你怎么看?为了割韭菜方便,骗子去那法外之地。如何在开曼成立公司,注册开曼公司的流程是什么?注册开曼公司的流程第一步公司名称1准备公司名称3个,进行公司名称查册2政府允许公司名称含有国际集团控
单反相机三种自动对焦模式怎么用?在针对静物的拍摄时,通常建议使用最简单直观的AFS对焦模式项,即单次自动对焦。很多时候,被摄物体并非是完全不动的,例如活动的小猫,疾驰的赛车或是在风中摇曳的花朵,这时采用自由点单次三星新款旗舰主控官宣,将于1月11日正式亮相继此前联发科与高通方面已经推出新款旗舰主控天玑9000与骁龙8Gen1后,也凭借着在产品端更为出色的表现,受到了众多消费者的关注。而在此前三星新款旗舰主控Exynos2200的产品谷歌方法论读后感4了解量级和边界的概念的重要性量级,在数学上有明确的定义,但是如果要用比较通俗的比方来说的话,就是类似于芝麻西瓜大山地球太阳银河系这样的对比差距。以前人们在做算法排序时,面对小数,我双侧自喷水科沃斯WINBOTW1Pro擦窗机器人评测无论是多雨的南方还是沙尘比较重的北方,做家务的时候窗户永远是最不好清洁的地方,尤其外窗在下过雨后玻璃上的水痕和灰尘非常容易留下污渍,特别是住在高层的朋友,自行擦窗非常不安全不方便。曾有两款软件有机会打败微信,结果皆落败,令人唏嘘今年1月,微信创始人张小龙披露,每日有10。9亿人在使用微信。而早在去年年末,微信的月活用户规模就已突破12亿大关,几乎直追中国总人口数。当今的微信,已是名副其实的国民级通讯软件,互联网电商平台是如何让更多人失业的我原来在一家线下零售公司的互联网平台工作。这个零售公司原来只做线下门店,有上千家门店,但近年受电商冲击很大,集团总部决定建立自营电商平台,夺回失去的销售份额。第一年,我进入这家公司学而思新马甲上线2天紧急下架,乐读优课App全面整改IT之家1月2日消息,2021年12月31日,继广州之后,北京上海也双双发布了义务教育阶段学科类校外培训收费标准,其中线上课程均为20元课时人次,最高可上浮10即不超过22元。12对话车顶维权女车主对于诉讼有信心,后悔买了特斯拉12月24日,曾在车顶维权的张女士起诉特斯拉名誉权纠纷一案在河南省安阳市北关区人民法院公开审理。庭审后,张女士接受了南都记者采访,她表示,最大的诉求是希望特斯拉就之前发布的不实声明三洋sanyo4波段收音机,单卡带四喇叭收录机音响M9994产品简介制造厂商三洋电机株式会社商品品牌三洋SANYO产品型号MR9600产品类型4波段收音机盒式录音机生产日期80年代制造国家中国音响颜色银色前壳黑色后壳电源AC120V60Hz被音响界热炒的SK3875,究竟是何方神圣?SanKenSK3875曾经是一个神秘的发烧器件,市面上未曾出现过正式销售。它是三肯公司专门为索尼,松下等音响公司专业定做的大功率功放模块,在sony的中高端音响系统应用较多。下图年终盘点2021最让车主受伤的五大车企2021年,车企新闻大多与车主维权并列出现。随着新能源汽车的热销,越来越多人开始作出油转电的尝试,有人体验良好,有人却身陷纠纷被迫走上维权之路。而舆论旋涡中的车企,面临的则是一些在