<text>
是 Weex 内置的组件,用来将文本按照指定的样式渲染出来.
::: warning <text>
不支持子组件。 :::
::: tip <text>
里直接写文本头尾空白会被过滤,如果需要保留头尾空白字符,暂时只能通过数据绑定的方式,见下面动态文本。 :::
除了动态文本,text组件不支持其他属性。
下列代码片段可以实现文字内容和JS变量的绑定。
<template> <div> <text >{{content}}</text> </div> </template> <script> module.exports = { data: function(){ return { content: "Weex is an cross-platform development solution that builds high-performance, scalable native applications with a Web development experience. Vue is a lightweight and powerful progressive front-end framework." } } } </script>
文字高度的计算规则比较复杂,但大致上遵循以下优先级进行计算,排在前面的优先级最高。
max-height
/min-height
样式。flex
属性且文字的父节点上有flex-direction:column
样式。height
样式。align-items:stretch
如果文字父节点有 flex-direction:row
样式。文本组件支持 ttf
字体格式的自定义字体。
font-family
名字创建字体文件。font-family:YourFontFamilyName
样式指定字体。:::warning iOS 兼容性 addRule 方法里的 fontFamily 可以随意取,这个名字是 Weex 本地索引用的,并不是字体真正的名字。字体真正的名字(font-family),也就是注册到系统字库中的名字是保存在字体二进制文件中的。你需要确保你使用的字体的真正名字(font-family)足够特殊,否则在向系统注册时可能发生冲突,导致注册失败,你的字符被显示为‘?’。要获取字体名字,可以在字体文件上单击右键,显示文件信息。以下图片显示了一个不好的做法,记住,永远不要使用 iconfont
作为你字体的名字。
如果你使用 Alibaba Iconfont 来构建你的 iconfont。确保在项目设置中,设置一个特殊的 font-family 名字。默认是 “iconfont”,但极大可能发生冲突。
:::
word-break 行为是不可预测的且与 Android ROM 强相关。事实上,word-break 行为依赖 Android 系统的 Minikin
组件,而 Minikin
在各个 Android ROMs 上差别很大,开发者不应该依赖其行为。
:::warning Android compatibility 一般来说,在下列场景下你可能会遇到 word-break 在不同机器上不一致的现象:
::: tip hack into word-break 开发者可通过在意外换行处添加 \uFEFF
即 ZERO WIDTH NO-BREAK SPACE 以触发强制不换行,详细用法可参考demo。请注意这个方法无法保证在所有 Android ROM 上有效,一些 ROM 会忽略 ZERO WIDTH NO-BREAK SPACE 指令。 :::