博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
riot.js教程【五】标签嵌套、命名元素、事件、标签条件
阅读量:6594 次
发布时间:2019-06-24

本文共 1702 字,大约阅读时间需要 5 分钟。

前文回顾

标签嵌套

让我们定义一个父标签account,一个子标签subscription

{ opts.plan.name }

// Get JS handle to options var plan = opts.plan, show_details = opts.show_details // access to the parent tag var parent = this.parent

注意:show_details的命名方式,这里不能写成驼峰式的名字,因为浏览器解析标签的时候会把大写转成小写

接下来我们把account标签添加到页面的body中

  

父标签的参数是通过riot.mount方法传递的,子标签的参数是通过标签属性传递过去的

注意:嵌套的标签总是在父标签内部声明,定义;

标签内嵌入HTML

我们先定义一个my-tag标签

Hello

this.text = 'world'

注意:这里有一个yield占位符,我们稍后再讲它

现在我们在页面上使用这个标签

{ text }

那么他渲染出来之后,是如下这个样子的:

Hello world

你看到了吗?yield占位符输出的,其实是text变量

这就是在标签内嵌入HTML代码

命名元素

当元素具备ref属性的时候,

这个元素会被链接到this.refs上,

这样你就可以很方便的用JS访问到它

注意,这个指向的操作,是在mount事件被触发前完成的,所以你可以在mount事件中访问到this.refs

事件

DOM事件可以直接和riotjs标签内的方法绑定,示例如下:

// this method is called when above form is submitted submit(e) { }

只要事件名以on开头的,比如:onclick, onsubmit, oninput,都可以直接绑定方法

这类事件也可以直接绑定一句表达式,如下:

在事件方法内,this指代本标签实例,方法执行完之后,会马上执行this.update()事件,

如果你在方法内部,使用了event.preventUpdate,那么方法执行完之后,就不会执行this.update()事件;

方法的第一个参数就是标准的event对象

  • e.currentTarget 指代触发事件的DOM元素
  • e.target 也指代触发事件的DOM元素
  • e.which 指代按键代码 (keypress, keyup, 等).

标签条件

你可以使用标签条件来决定是否需要显示一个标签,如下:

This is for premium users only

注意,标签条件的值可以是一个变量,也可以是一个表达式

除了if之外,还可以使用show和hide来决定是否显示一个标签

show – 当值是true的时候,相当于 style="display: ''"

hide – 当值是true的时候,相当于 style="display: none"

if – 当值是true的时候,会把该标签加入到DOM元素中,是false的时候,不会把标签加入到dom元素中

转载地址:http://snjio.baihongyu.com/

你可能感兴趣的文章
Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)
查看>>
利用scp传输文件小结
查看>>
面向对象设计模式纵横谈:Factory Method 工厂方法模式(笔记记录)
查看>>
C++使用hiredis连接带密码的redis服务
查看>>
SQL SERVER 批量生成编号
查看>>
thinkjs——一个字段一种数字代表两种状态
查看>>
C++的那些事:类的拷贝控制
查看>>
numpy得到数组的index
查看>>
JSP页面重定向
查看>>
RecyclerView具体解释
查看>>
vue2.0 vue-loader
查看>>
美国埃博拉患者是怎样治愈的?
查看>>
[离散时间信号处理学习笔记] 9. z变换性质
查看>>
简单实用SQL脚本Part:查找SQL Server 自增ID值不连续记录
查看>>
关系型数据库的分片原则
查看>>
浅谈线段树中加与乘标记的下放
查看>>
【IDEA】IDEA中maven项目pom.xml依赖不生效解决
查看>>
scrapy-redis(七):部署scrapy
查看>>
Redis集群
查看>>
建立自己的NuGet服务器
查看>>