vue&uni-app项目实现一段文字逐个显示

此博客介绍了一个uni-app项目,通过`substr()`方法实现按字符逐步显示文章内容,适合实时滚动阅读体验。作者使用定时器控制每100毫秒增加显示的字符数,直至完整内容展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现思路是 将要显示的字符串用substr() 方法进行分割,使用计时器逐个增加要分割的长度
主要代码:

onLoad(options) {
	this.data=JSON.parse(options.data)
	this.wen = ''
	//声明一个变量,用来监听要分割的长度
	var wenlen = 0
	this.timer=setInterval (()=>{
		//取到data.content的第wenlen位
		this.wen  = this.data.content.substr(0,wenlen);
		//wenlen大于data.content的长度,停止计时器
		if(wenlen<this.data.content.length){
			wenlen++
		}else{
			clearInterval(this.timer);
			// return
		}
		console.log(this.wen)
	},100);
	
},
//监听页面返回,退出页面时清除计时器
onBackPress() {
	clearInterval(this.timer);
},

这里是uni-app项目
整个页面的代码:

<template>
	<view>
		<view class="detail">
			<text class="tit">{{data.title}}</text>
			<view class="writer">{{data.writer}} · <text>{{data.dynasty}}</text></view>
			<text id="article" selectionchange="true">{{wen}}</text>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				data:{},
				timer:null,
				wen:''
			}
		},
		onLoad(options) {
			this.data=JSON.parse(options.data)
			this.wen = ''
			console.log(this.data)
			uni.setNavigationBarTitle({
				title:this.data.title
			})
			//声明一个变量,用来监听要分割的长度
			var wenlen = 0
			this.timer=setInterval (()=>{
				//取到data.content的第wenlen位
				this.wen  = this.data.content.substr(0,wenlen);
				//wenlen大于data.content的长度,停止计时器
				if(wenlen<this.data.content.length){
					wenlen++
				}else{
					clearInterval(this.timer);
					// return
				}
				console.log(this.wen)
			},100);
			
		},
		//监听页面返回,退出页面时清除计时器
		onBackPress() {
			clearInterval(this.timer);
		},
		methods: {
			
		}
	}
</script>

<style>
	.tit{
		text-align: center;
		color: #333333;
		font-size: 25px;
		width: 100%;
		display: block;
	}
	.writer{
		text-align: right;
		padding-right: 50px;
	}
#article{
	display: block;
	color: red;
	font-size: 16px;
	/* text-indent: 32px; */
	line-height: 30px;
	width: 90%;
	margin: 10px auto;
}
</style>

### 如何在 Uni-app 中引入和使用第三方组件库 #### 使用 ThorUI 组件库 为了在 Uni-app 项目中集成 ThorUI 组件库,需执行如下操作: - 创建一个新的 Uni-app 工程实例。 - 将所获得的 ThorUI 库内的文件按照其原始结构复制至新工程相应位置,注意排除 `pages` 文件夹的内容[^1]。 ```javascript // 示例:假设已经完成上述步骤,在页面中可以直接使用 ThorUI 提供的组件 <template> <view class="content"> <!-- 这里可以放置来自 ThorUI 的 UI 控件 --> <thor-calendar ref="calendar"></thor-calendar> <!-- 假设这是其中一个日历控件 --> </view> </template> <script> export default { data() { return {}; }, } </script> ``` #### Vant-weapp 组件库的应用方法 对于 Vant-weapp 来说,则采取不同的策略来加载这些资源。具体做法是在应用根目录下建立名为 `vant` 的子目录,并将 Vant 发布版 (`dist`) 下的所有静态资源放入其中;接着通过修改全局样式表以及更新 `pages.json` 文件里的配置项以声明所需使用的自定义组件[^3]。 ```json { "path": "example", "style": { ... "usingComponents": { "van-button": "/wxcomponents/vant/dist/button/index" } } } ``` #### 利用 EasyCom 方便快捷地接入其他 Vue 类型组件库 考虑到某些情况下开发者可能更倾向于采用基于 Vue.js 构建的传统 Web 界面框架作为移动端开发工具链的一部分,此时可以通过启用 easycom 插件简化此类场景下的工作流程——仅需一次性的设置即可自动解析并注册所有遵循特定命名约定的单文件组件(.vue),从而省去了手动逐个处理的过程[^4]。 ```javascript // main.js 或类似的入口脚本内激活插件功能 import { createApp } from 'vue'; import App from './App.vue'; const app = createApp(App); app.use(EasyComPlugin); // 启动EasyCom支持 app.mount('#app'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值