快捷搜索:  汽车  科技

vue3.0怎么注册全局组件(第6天14天搞定Vue3.0)

vue3.0怎么注册全局组件(第6天14天搞定Vue3.0)如果你纠结该用红色字体表明不帅,还是用蓝色字体表明帅的话,那你可以用三元表达式,根据条件切换列表中的class。<span id="app"><p class="b big-text error"> 程序员<br> 除了会编程之外,还会什么?<br> 当然是敲代码了。 </p></span>输出结果<h1 class="b error">老陈帅不? 如果你说不帅,我就用红色字体,亮瞎你的眼。</h1>输出结果如果你想同时满足多个class,你可以用class的数组语法。这个语法,可读性更强一些。<!DOCTYPE html> <html> <head> <meta charset="U

在这个看颜值的时代,美,真的太重要了。为了方便CSS美好html的美,Vue3.0特意提供了操作元素的class和内联样式的指令。因为它们都是元素,所以我们可以用v-bind进行处理。

由于字符串拼接麻烦且易错,所有Vue3.0在v-bind用于class和 style时,做了专门的增强,表达式结果的类型除了字符串之外,还可以是对象或数组。

6.1 Class指令

Vue用v-bind:class(简写为:class)指令,用于解决动态切换class的需求。如果你不清楚用在什么哪方面的需求,就想一下提示信息的应用,在错误发生时,用红色字体,否则用绿色。

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Vue3.0 class指令</title> <script src="vue.global.js"></script> <style> .b { font-weight: bold; } .error { color: red; } </style> </head> <body> <span id="app"> <h1 class="b" :class="{ 'error': hasError }">老陈帅不? 如果你说不帅,我就用红色字体,亮瞎你的眼。</h1> </span> <script> Vue.createApp({ data() { return { hasError: true } } }).mount("#app") </script> </body> </html>

渲染结果(生成的代码)

<h1 class="b error">老陈帅不? 如果你说不帅,我就用红色字体,亮瞎你的眼。</h1>

输出结果

vue3.0怎么注册全局组件(第6天14天搞定Vue3.0)(1)

如果你想同时满足多个class,你可以用class的数组语法。这个语法,可读性更强一些。

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Vue3.0 class指令</title> <script src="vue.global.js"></script> <style> .b { font-weight: bold; } .big-text { font-size: 60px; } .error { color: red; } </style> </head> <body> <span id="app"> <p class="b" :class="[fontSize errorInfo]"> 程序员<br/> 除了会编程之外,还会什么?<br/> 当然是敲代码了。 </p> </span> <script> Vue.createApp({ data() { return { fontSize: 'big-text' errorInfo: 'error' } } }).mount("#app") </script> </body> </html>

渲染结果(生成的代码)

<span id="app"><p class="b big-text error"> 程序员<br> 除了会编程之外,还会什么?<br> 当然是敲代码了。 </p></span>

输出结果

vue3.0怎么注册全局组件(第6天14天搞定Vue3.0)(2)

如果你纠结该用红色字体表明不帅,还是用蓝色字体表明帅的话,那你可以用三元表达式,根据条件切换列表中的class。

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Vue3.0 class指令</title> <script src="vue.global.js"></script> <style> .b { font-weight: bold; font-size: 50px; } .yes { color: #008CBA; } .no { color: red; } </style> </head> <body> <span id="app"> <p class="b" :class="[isCool ? 'yes' :'no']"> 老陈帅不?帅的,蓝色字体代表我的心。 </p> </span> <script> Vue.createApp({ data() { return { isCool: true } } }).mount("#app") </script> </body> </html>

输出结果

vue3.0怎么注册全局组件(第6天14天搞定Vue3.0)(3)

6.2 内联样式

在HTML中,在元素上用style的话,结果是不可改变的,为此Vue3.0加上了:style指令。注意,你别看这个指令看起来十分直观,看着非常像CSS,但其实是一个 JavaScript 对象来的。

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Vue3.0 style指令</title> <script src="vue.global.js"></script> </head> <body> <span id="app"> <p :style="{ color: textColor fontSize: fontSize 'px' }"> 程序员,除了你之外,都是美的,哈哈~ </p> </span> <script> Vue.createApp({ data() { return { textColor: '#008CBA' fontSize: 50 } } }).mount("#app") </script> </body> </html>

输出结果

vue3.0怎么注册全局组件(第6天14天搞定Vue3.0)(4)

如果你觉得这种方式不好,伤了你的心,那你可以用样式对象的方式。这样的写法,是不是更舒服了一些,输出结果和上面是一模一样的。

<span id="app"> <p :style="styleOj"> 程序员,除了你之外,都是美的,哈哈~ </p> </span> <script> Vue.createApp({ data() { return { styleOj: { color: '#008CBA' fontSize: '50px' } } } }).mount("#app") </script>

既然class可以用数组语法,:style当然也可以。:style的数组语法可以将多个样式对象应用到同一个元素上。输出结果和上面的还是一样的,我就不重复粘贴了。

<span id="app"> <p :style="[textColor fontSize]"> 程序员,除了你之外,都是美的,哈哈~ </p> </span> <script> Vue.createApp({ data() { return { textColor: { color: '#008CBA' } fontSize: { 'font-size': '50px' } } } }).mount("#app") </script>

好了,有关Vue3.0样式绑定的内容,老陈讲完了,如果觉得对你有所帮助,希望老铁能转发点赞,让更多的人看到这篇文章。你的转发和点赞,就是对老陈继续创作和分享最大的鼓励。

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我在分享Python,前端、Java和App方面的干货。关注我,没错的。

#前端##Vue.js##程序员##Web##JavaScript#

猜您喜欢: