3.10 Browser -- useTitle

2024-09-03 18:28
文章标签 browser 3.10 usetitle

本文主要是介绍3.10 Browser -- useTitle,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3.10 Browser – useTitle

https://vueuse.org/core/useTitle/

作用

响应式的修改document的标题

官方示例

import { useTitle } from '@vueuse/core'const title = useTitle()
console.log(title.value) // print current title
title.value = 'Hello' // change current title

也可以在调用的时候直接指定title

const title = useTitle('New Title')

可以为参数传递一个ref,当ref发生变化时,页面的title也会变化

import { useTitle } from '@vueuse/core'const messages = ref(0)const title = computed(() => {return !messages.value ? 'No message' : `${messages.value} new messages`
})useTitle(title) // document title will match with the ref "title"

通过一个可选的模板标签Vue Meta Title template来更新要注入到这个模板中的标题。

const title = useTitle('New Title', { titleTemplate: '%s | My Awesome Website' })

⚠️:observetitleTemplate不兼容

源码分析

这个函数的源码比较简单,主要学习一下对响应式数据的处理。官方示例的最后一种情况我们忽略,因为几乎不会使用。

export function useTitle(newTitle: MaybeComputedRef<string | null | undefined> = null,options: UseTitleOptions = {},
) {const {document = defaultDocument,} = optionsconst title: WritableComputedRef<string | null | undefined> = resolveRef(newTitle ?? document?.title ?? null)watch(title,(t, o) => {if (t !== o && document)document.title = isString(t) ? t : ''},{ immediate: true },)return title
}

resolveRef(newTitle ?? document?.title ?? null)这里的??,表示前一项为null或者undefined,才会去看后一项,0 和 ''会被当成true来处理。

  • 这里的resolveRef,返回computed或者ref函数,具体是哪个要根据传入的参数来看。
export function resolveRef<T>(r: MaybeComputedRef<T>) {return typeof r === 'function'? computed<T>(r as any): ref(r)
}

借用官方示例的两个例子:

// 1 这传的是字符串,resolveRef返回的是ref('New Title')
const title = useTitle('New Title')// 2 这里传的是ComputedRefImpl,resolveRef中,用ref包裹ComputedRefImpl,返回的结果还是ComputedRefImpl
// 见下图,title最终类型是ComputedRefImpl
const title = computed(() => {return !messages.value ? 'No message' : `${messages.value} new messages`
})useTitle(title) // 3 但是如果传的是 () => 'new Title',这时候resolveRef会进入typeof r === 'function'这个判断,返回的也是ComputedRefImpl
const title = useTitle(() => 'new Title')

在这里插入图片描述

这篇关于3.10 Browser -- useTitle的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133702

相关文章

【ReactJS】困惑于text/babel与browser.js还是babel.js?

使用JSX   使用JSX,可以极大的简化React元素的创建,JSX抽象化了React.createElement()函数的使用,其语法风格类似于HTML语法风格。对比如下代码可以让你更好的理解这一点。 // 使用React.createElement()return React.createElement('div',null,'Hello',this.props.name);//使用J

Floorp Browser:开源自由,打造更个性化的浏览环境!

前言 "技术引领未来,创新改变世界。" 在这个日新月异的数字化时代,网络浏览器作为我们探索互联网世界的窗口,其重要性不言而喻。正是在这样的背景下,Floorp浏览器应运而生,它不仅继承了Mozilla Firefox的强大基因,更在此基础上进行了创新与优化,旨在为用户打造一个更加开放、私密且可持续的网络环境。 项目的诞生,源自于一群对技术充满热情、对互联网未来满怀憧憬的开发者。他们看到了当前网

3.10.输入型参数与输出型参数

指针才是C的精髓 3.10.输入型参数与输出型参数3.10.1、函数为什么需要形参与返回值3.10.2、函数传参中使用const指针3.10.3、函数需要向外部返回多个值时怎么办?3.10.4、总结 3.10.输入型参数与输出型参数 3.10.1、函数为什么需要形参与返回值 (1)函数名是一个符号,表示整个函数代码段的首地址,实质是一个指针常量,所以在程序中使用到函数名时都是

华为云征文 | 基于华为云Flexus云服务器X实例部署File Browser文件管理系统

华为云征文 | 华为云征文 | 基于华为云Flexus云服务器X实例部署File Browser文件管理系统 一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、File Browser项目介绍2.1 File Browser简介2.2 File Browser功能2.3 File Br

移动端开发真机调试神器——browser-sync

原文链接:http://web.jobbole.com/87587/ 前言:博主翻山越岭,找了很久的真机调试, 从老古董,weinre,到微信开发者工具,到最后的browser-sync,最后这个工具真的是眼前一亮~ 本文默认前提:你已会使用gulp,npm,并且环境已经搭好 1.npm init 找到目录中的 package.json, 在文件中添加相关依赖包 "depe

Linux kernel-3.10 I2C 驱动程式之Slave

Linux kernel-3.10 I2C slave设备最简驱动程式 重要数据结构:        struct i2c_driver, struct i2c_client 重要i2c子系统API:  i2c_register_board_infor(&adap),  i2c_add_driver() static struct i2c_driver tpd_i2c_

Linux kernel-3.10 I2C 驱动程式之Master

Linux kernel-3.10 I2C Master最简驱动程式 重要数据结构:         struct i2c_algorithmv, struct platform_driver, struct i2c_adapter 重要i2c子系统API:  i2c_add_numbered_adapter(&adap);  int lxx_i2c_transfer(struct i2

URL validation failed. The error could have been caused through the use of the browser's navigation

URL validation failed. The error could have been caused through the use of the browser's navigation buttons(the browser Back button or refresh, for example).  最近在登陆Oracle Application时遇到问题:URL validat

LeetCode contest 192 5430. 设计浏览器历史记录 Design Browser History

Table of Contents 一、中文版 二、英文版 三、My answer 四、解题报告 一、中文版 你有一个只支持单个标签页的 浏览器 ,最开始你浏览的网页是 homepage ,你可以访问其他的网站 url ,也可以在浏览历史中后退 steps 步或前进 steps 步。 请你实现 BrowserHistory 类: BrowserHistory(string ho

SQLite数据库查看工具的下载、安装、使用教程(DB Browser for SQLite)

SQLite数据库查看工具 SQLite是我们在开发中常见的数据库,例如我们在开发Android时,需要查看App生成的数据库内容,这时就需要用到一些工具来帮助我们打开并查看数据库文件。 DB Browser for SQLite 本文介绍的是一款非常实用的,开源版SQLite数据库查看工具:DB Browser for SQLite。 它是一款开源软件,并且可以免费实用,操作简便