快速上手 Vue 和 Element-UI 组件库

痛定思痛。 2024-05-23 18:58 123阅读 0赞

168c1abc67f4402ebfc99ff077a3e4da.gif

哈喽~大家好,这篇来看看快速上手 Vue 和 Element-UI 组件库。

?个人主页:个人主页

? 系列专栏:【微服务】

?与这篇相关的文章:
















SpringCloud Sentinel 使用 SpringCloud Sentinel 使用程序猿追的博客-CSDN博客_springcloud使用sentinel
将Nacos注册到springboot使用以及Feign实现服务调用 <a href=”https://blog.csdn.net/aasd23/article/details/127961919?spm=1001.2014.3001.5502“ title=”将Nacos注册到springboot使用以及Feign实现服务调用程序猿追的博客-CSDN博客nacos springboot 服务调用” rel=”nofollow”>将Nacos注册到springboot使用以及Feign实现服务调用程序猿追的博客-CSDN博客nacos springboot 服务调用
微服务介绍与 SpringCloud Eureka <a href=”https://blog.csdn.net/aasd23/article/details/127913922?spm=1001.2014.3001.5502“ title=”微服务介绍与 SpringCloud Eureka程序猿追的博客-CSDN博客” rel=”nofollow”>微服务介绍与 SpringCloud Eureka_程序猿追的博客-CSDN博客

号外号外,我最近发现了一个非常棒的人工智能学习网站,它的内容通俗易懂,风趣幽默,让人印象深刻。我想和大家分享这个网站,点击链接即可访问。

目录

一、前言

1、vue 是什么?

2、什么是MVVM?

二、NPM使用

1、安装 npm 与 vue

三、vue 的使用

1、基本用法

2、内容渲染指令

3、属性绑定指令

4、使用JavaScript表达式

5、事件绑定指令

6、条件渲染指令

7、v-else与v-else-if指令

8、列表渲染指令

9、v-for中的key

四、Vue CLI使用

1、什么是Vue CLI?

2、什么是组件化开发?

3、vue组件的构成

4、使用Vue CLI 创建Vue

5、目录结构

6、自定义标签

五、第三方组件element-ui

1、什么是element-ui?

2、安装

3、引入

4、使用element-ui

5、第三方图标库


一、前言

1、vue 是什么?

vue是一个用于创建用户界面的开源JavaScript框架,也是一个创建单页应用的Web应用框架;Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互。

Vue.js提供了MVVM数据绑定和一个可组合的组件系统,具有简单、灵活的API。

其目标是通过尽可能简单的API实现响应式的数据绑定和可组合的视图组件。

2、什么是MVVM?

MVVM是Model-View-ViewModel的缩写,它是一种基于前端开发的架构模式,其核心是提供对View和ViewModel的双向数据绑定。

Vue提供了MVVM风格的双向数据绑定,核心是MVVM中的VM,也就是ViewModel,ViewModel负责连接View和Model,保证视图和数据的一致性。

e2e927071ff9433cb816a2ab483fd510.png

注:学习vue需要网页三件套的基础(HTML + CSS + JavaScript)

这里我们使用的工具是 VScode ,需要安装的插件是 Vetur

e9e6f05c54534329a37285d98d2467c0.png

二、NPM使用

1、安装 npm 与 vue

安装 npm 与 vue 可以看看这位大佬的

npm如何安装与配置

三、vue 的使用

1、基本用法

我们采用导入 vue 的脚本文件方法

  1. <script src="https://unpkg.com/vue@next"></script>

声明要被 vue 所控制的 DOM 区域

  1. <div id="app">
  2. {
  3. {message}}
  4. </div>

创建 vue 的实例对象

  1. <script>
  2. const hello = {
  3. // 指定数据源,既MVVM中的Model
  4. data: function() {
  5. return {
  6. message: 'Hello Vue!'
  7. }
  8. }
  9. }
  10. const app = Vue.createApp(hello)
  11. app.mount('#app')
  12. </script>

Vue.createApp()

createApp可以分解成create和App来理解,create就是创建的意思,而App指的是Application,也就是应用的意思,那么Vue.createApp()就可以理解成创建一个Vue应用的意思。 createApp()方法会返回一个Vue实例对象。

mount()

mount()是挂载的意思,需要一个字符串型参数参数,写法可以使用css选择器,一般都是使用ID选择器的形式,比如mount(“#app”),意思就是将ID为app的节点挂载到Vue上。

测试代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <!-- 1. 导入 vue 的脚本文件 -->
  8. <script src="https://unpkg.com/vue@next"></script>
  9. </head>
  10. <body>
  11. <!-- 2. 声明要被 vue 所控制的 DOM 区域 -->
  12. <div id="app">
  13. {
  14. {message}}
  15. </div>
  16. <!-- 3. 创建 vue 的实例对象 -->
  17. <script>
  18. const hello = {
  19. // 指定数据源,既MVVM中的Model
  20. data: function() {
  21. return {
  22. message: 'Hello Vue!'
  23. }
  24. }
  25. }
  26. const app = Vue.createApp(hello)
  27. app.mount('#app')
  28. </script>
  29. </body>
  30. </html>

效果

4f3e8dd6d1144a309954c2c799b15934.png

2、内容渲染指令

在 data 里面的return 的字段名,通过 { {字段名}} 的方式可以是字段名的内容渲染到标签里面,但如果遇到渲染的内容是个标签呢?

eg:

  1. <p>{
  2. {desc}}</p>
  3. data: function(){
  4. return {
  5. username: 'zhangsan',
  6. gender: '男',
  7. desc: '<a href="http://www.baidu.com">百度</a>'
  8. }
  9. }

效果

9ef20847a7ec4381a732c2a4613e1aa2.png

这肯定不是我们想要的,我们可以用 v-html

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <script src="https://unpkg.com/vue@next"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <!-- <p>姓名:{
  12. {username}}</p>
  13. <p>性别:{
  14. {gender}}</p> -->
  15. <p>{
  16. {desc}}</p>
  17. <p v-html="desc"></p>
  18. </div>
  19. <script>
  20. const vm = {
  21. data: function(){
  22. return {
  23. username: 'zhangsan',
  24. gender: '男',
  25. desc: '<a href="http://www.baidu.com">百度</a>'
  26. }
  27. }
  28. }
  29. const app = Vue.createApp(vm)
  30. app.mount('#app')
  31. </script>
  32. </body>
  33. </html>

效果

4ba4eea7af9b442db3de3565c419197a.png

3、属性绑定指令

vue中,属性加不加冒号的区别?

加冒号:表示后边是一个变量,或者是一个表达式

不加冒号:表示后边是一个字符串字面量

Tips ① (:)是(v-bind:)的简写,v-bind是vue用来绑定属性的,属于vue的基础知识——模板语法 > > > 指令 > > > v-bind,详见官网 ② 指令 (Directives) 是带有 v- 前缀的特殊 attribute。除v-for外,其余attribute的预期值是一个js表达式

测试代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <script src="https://unpkg.com/vue@next"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <a :href="link">百度</a>
  12. <input type="text" :placeholder="inputValue">
  13. <img :src="imgSrc" :style="{width:w}" alt="">
  14. </div>
  15. <script>
  16. const vm = {
  17. data: function(){
  18. return {
  19. link:"http://www.baidu.com",
  20. // 文本框的占位符内容
  21. inputValue: '请输入内容',
  22. // 图片的 src 地址
  23. imgSrc: './images/demo.png',
  24. w:'500px'
  25. }
  26. }
  27. }
  28. const app = Vue.createApp(vm)
  29. app.mount('#app')
  30. </script>
  31. </body>
  32. </html>

效果

6557d346b1f74ea78d9e7e62f02bffca.png

4、使用JavaScript表达式

JavaScript表达式有基本数据的直接量,有数组初始化表达式,有对象初始化表达式,有成员访问表达式,属性访问表达式等等。

直接看代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <script src="https://unpkg.com/vue@next"></script>
  8. </head>
  9. <body>
  10. <!-- vue 实例要控制的 DOM 区域 -->
  11. <div id="app">
  12. <p>{
  13. {number + 1}}</p>
  14. <p>{
  15. {ok ? 'True' : 'False'}}</p>
  16. <p>{
  17. {message.split('').reverse().join('')}}</p>
  18. <p :id="'list-' + id">xxx</p>
  19. <p>{
  20. {user.name}}</p>
  21. </div>
  22. <script>
  23. const vm = {
  24. data: function(){
  25. return {
  26. number: 9,
  27. ok: false,
  28. message: 'ABC',
  29. id: 3,
  30. user: {
  31. name: 'itxzw',
  32. }
  33. }
  34. }
  35. }
  36. const app = Vue.createApp(vm)
  37. app.mount('#app')
  38. </script>
  39. </body>
  40. </html>

效果

bbbf00041cb944f79814e5228aeda601.png

5、事件绑定指令

在vue里面点击事件可以用v-on:click或@click来进行绑定某函数

示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <script src="https://unpkg.com/vue@next"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <h3>count 的值为:{
  12. {count}}</h3>
  13. <button v-on:click="addCount">+1</button>
  14. <button @click="count+=1">+1</button>
  15. <button @click="count-=1">-1</button>
  16. </div>
  17. <script>
  18. const vm = {
  19. data: function(){
  20. return {
  21. count: 0,
  22. }
  23. },
  24. methods: {
  25. // 点击按钮,让 count 自增 +1
  26. addCount() {
  27. this.count += 1
  28. },
  29. },
  30. }
  31. const app = Vue.createApp(vm)
  32. app.mount('#app')
  33. </script>
  34. </body>
  35. </html>

效果

e32b4a67ecde42dda92ce3ff6fac9185.png

6、条件渲染指令

条件指令就像if else这样的了

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <script src="https://unpkg.com/vue@next"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <button @click="flag = !flag">Toggle Flag</button>
  12. <p v-if="flag">请求成功 --- 被 v-if 控制</p>
  13. <p v-show="flag">请求成功 --- 被 v-show 控制</p>
  14. </div>
  15. <script>
  16. const vm = {
  17. data: function(){
  18. return {
  19. flag: false,
  20. }
  21. }
  22. }
  23. const app = Vue.createApp(vm)
  24. app.mount('#app')
  25. </script>
  26. </body>
  27. </html>

v-if 与 v-show 的区别

隐藏状态下,v-if 是直接没有了,而 v-show 是 display: none;

8609c3980ebb4fb19820d9a6751ff494.png

ecb8d57e39b743498f21bd4d2cd89170.png

7、v-else与v-else-if指令

其实就是我们学的if else

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <script src="https://unpkg.com/vue@next"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <p v-if="num > 0.5">随机数 > 0.5</p>
  12. <p v-else>随机数 ≤ 0.5</p>
  13. <hr />
  14. <p v-if="type === 'A'">优秀</p>
  15. <p v-else-if="type === 'B'">良好</p>
  16. <p v-else-if="type === 'C'">一般</p>
  17. <p v-else></p>
  18. <div v-show="a">
  19. 测试
  20. </div>
  21. <button @click="!a">点击</button>
  22. </div>
  23. <script>
  24. const vm = {
  25. data: function(){
  26. return {
  27. // 生成 1 以内的随机数
  28. num: Math.random(),
  29. // 类型
  30. type: 'A',
  31. a : false
  32. }
  33. },
  34. methods:{
  35. f:function(){
  36. this.a = !this.a
  37. }
  38. }
  39. }
  40. const app = Vue.createApp(vm)
  41. app.mount('#app')
  42. </script>
  43. </body>
  44. </html>

效果

3de8f3e95961498c94b7ba375bc3169b.png

8、列表渲染指令

v-for 使用的是增强for循环

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <script src="https://unpkg.com/vue@next"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <ul>
  12. <li v-for="(user, i) in userList">索引是:{
  13. {i}},姓名是:{
  14. {user.name}}</li>
  15. </ul>
  16. </div>
  17. <script>
  18. const vm = {
  19. data: function(){
  20. return {
  21. userList: [
  22. { id: 1, name: 'zhangsan' },
  23. { id: 2, name: 'lisi' },
  24. { id: 3, name: 'wangwu' },
  25. ],
  26. }
  27. },
  28. }
  29. const app = Vue.createApp(vm)
  30. app.mount('#app')
  31. </script>
  32. </body>
  33. </html>

效果

a95b3aad4efe450dbd9e73ea073a3c61.png

9、v-for中的key

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <script src="https://unpkg.com/vue@next"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <!-- 添加用户的区域 -->
  12. <div>
  13. <input type="text" v-model="name">
  14. <button @click="addNewUser">添加</button>
  15. </div>
  16. <!-- 用户列表区域 -->
  17. <ul>
  18. <li v-for="(user, index) in userlist" :key="user.id">
  19. <input type="checkbox" />
  20. 姓名:{
  21. {user.name}}
  22. </li>
  23. </ul>
  24. </div>
  25. <script>
  26. const vm = {
  27. data: function(){
  28. return {
  29. // 用户列表
  30. userlist: [
  31. { id: 1, name: 'zhangsan' },
  32. { id: 2, name: 'lisi' }
  33. ],
  34. // 输入的用户名
  35. name: '',
  36. // 下一个可用的 id 值
  37. nextId: 3
  38. }
  39. },
  40. methods: {
  41. // 点击了添加按钮
  42. addNewUser() {
  43. this.userlist.unshift({ id: this.nextId, name: this.name })
  44. this.name = ''
  45. this.nextId++
  46. }
  47. }
  48. }
  49. const app = Vue.createApp(vm)
  50. app.mount('#app')
  51. </script>
  52. </body>
  53. </html>

效果

313259c1848544c3ac67369482ac4fc4.png

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

pop() 方法数组最后一位元素删除并返回数组的最后一个元素。

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

splice(index,howmany,item1, …, itemX) 方法向/从数组中添加/删除项目,然后返回被删除的项目 第一个参数:表示从哪个索引位置(index)添加/删除元素 第二个参数:要删除的项目数量。如果设置为 0,则不会删除项目。 第三个参数:可选。向数组添加的新项目。

sort() 方法对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

concat() 方法用于连接两个或多个数组。

slice() 方法可从已有的数组中返回选定的元素。

split() 方法用于把一个字符串分割成字符串数组。

四、Vue CLI使用

1、什么是Vue CLI?

Vue CLI是Vue官方提供的构建工具,通常称为脚手架。

用于快速搭建一个带有热重载(在代码修改后不必刷新页面即可呈现修改后的效果)及构建生产版本等功能的单页面应用。

Vue CLI基于 webpack 构建,也可以通过项目内的配置文件进行配置。

2、什么是组件化开发?

组件(Component)是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。

Vue的组件系统允许我们使用小型、独立和通常可复用的组件构建大型应用。

3、vue组件的构成

Vue 中规定组件的后缀名是 .vue

每个 .vue 组件都由 3 部分构成,分别是

template,组件的模板结构,可以包含HTML标签及其他的组件

script,组件的 JavaScript 代码

style,组件的样式

4、使用Vue CLI 创建Vue

打开要创建的文件目录

打开cmd 使用 vue create 项目名指令

de0912ca0c9248a7b50d4386cce0704c.png

选择第三个,敲回车

3ffd79e62a864c4588ab05a9480ab112.png

取消 Linter / Formatter ,按空格取消,回车下一步

9c4f90fb07bb49a19f44e2e00798d1a6.png

选择版本号,这里我们用2.0

1b6e1c930aaa4b9aad7aae013aefbdfc.png

使用json风格

fc6b13cf8a3a4bd7a4f1cfffd5c73d33.png

不使用快照

4898dc4a53e1434f95f5137ede1b6ebf.png

正在创建

8fbf5963e6034656bcfef61935c95e51.png

以创建ok

f39971c2d2c44076bf9f16e9f1b3784b.png

使用 vscode 打开

5、目录结构

ec3c035a2adf48c7b4e57f2eaf90d2f3.png

“assets”: 共用的样式、图片

“components”: 业务代码存放的地方,里面分成一个个组件存放,一个页面是一个组件,一个页面里面还会包着很多组件

“router”: 设置路由

“App.vue”: vue文件入口界面

“main.js:对应App.vue 创建vue实例,也是入口文件,对应webpack.base.config.js里的入口配置

static 文件夹:

存放的文件不会经过webpack处理,可以直接引用,例如swf文件如果要引用可以在webpack配置对swf后缀名的文件处理的loader,也可以直接将swf文件放在这个文件夹引用

package.json:

这个文件有两部分是有用的:scripts 里面设置命令,例如设置了dev用于调试则我们开发时输入的是 npm run dev ;例如设置了build 则是输入 npm run build 用于打包;另一部分是这里可以看到我们需要的依赖包,在dependencies和devDependencies中,分别对应全局下载和局部下载的依赖包

vscode 打开控制台,使用命令 npm run serve 运行,

访问路径:http://localhost:8080/

效果

f37ed7ab974a46098b057de2e658e5da.png

Hellow.vue 代码

  1. <template>
  2. <h1>Hellow Vue</h1>
  3. </template>
  4. <script>
  5. </script>
  6. <style>
  7. </style>

App.vue 将 Hellow.vue 代码导入进来,并起一个别名

  1. import hellow from './components/Hellow.vue'

并注册到组件里面,这就是自定义标签

  1. export default {
  2. name: 'App',
  3. components: {
  4. hellow
  5. }
  6. }
  7. <template>
  8. <img alt="Vue logo" src="./assets/logo.png">
  9. <hellow></hellow>
  10. </template>

思路有点像套娃行为

6、自定义标签

新建一个Movie.vue,代码如下

  1. <template>
  2. <div>
  3. <h1>{
  4. {title}}</h1>
  5. <span>{
  6. {rating}}</span>
  7. <button @click="fun">点击</button>
  8. </div>
  9. </template>
  10. <!-- props 自定义属性,可以在外部使用自定义的名称,不需要导入的方式来进行套娃 -->
  11. <script>
  12. export default {
  13. name: "Movic",
  14. props:["title","rating"],
  15. data: function(){
  16. return{
  17. }
  18. },
  19. methods: {
  20. fun(){
  21. alert("我被点击了")
  22. }
  23. }
  24. }
  25. </script>

App.vue 代码

  1. <template>
  2. <div id="app">
  3. <Movie v-for= "movie in movies" :key="movie.id" :title="movie.title" :rating="movie.rating"></Movie>
  4. <Hello></Hello>
  5. </div>
  6. </template>
  7. <script>
  8. import Movie from "./components/Movie.vue"
  9. import Hello from "./components/Hello.vue"
  10. export default {
  11. name: 'App',
  12. data: function(){
  13. return {
  14. movies: [
  15. {id:1, title: "666", rating: 6},
  16. {id:2, title: "777", rating: 7},
  17. {id:3, title: "888", rating: 8},
  18. ]
  19. }
  20. },
  21. components: {
  22. Movie,
  23. Hello
  24. }
  25. }
  26. </script>
  27. <style>
  28. #app {
  29. font-family: Avenir, Helvetica, Arial, sans-serif;
  30. -webkit-font-smoothing: antialiased;
  31. -moz-osx-font-smoothing: grayscale;
  32. text-align: center;
  33. color: #2c3e50;
  34. margin-top: 60px;
  35. }
  36. </style>

效果

2754bf21e16b491b828b3e03ad4f8122.png

五、第三方组件element-ui

1、什么是element-ui?

element-ui是由饿了么前端团队推出的一套为开发者、设计师和产品经理准备的基于Vue.js 2.0的桌面组件库,而手机端有对应框架是 Mint UI 。整个ui风格简约,很实用,同时也极大的提高了开发者的效率,是一个非常受欢迎的组件库。

官网地址

2、安装

推荐使用npm安装方式

  1. npm install element-ui -save

3、引入

全局引入,在vue入口main.js中增加内容如下

  1. import ElementUI from 'element-ui';
  2. import 'element-ui/lib/theme-chalk/index.css';
  3. Vue.use(ElementUI);

966ec276763d4b9593b4e822e7ae462d.png

局部引入,在指定的vue文件中引入所需要的组件或主题样式,如下

  1. import '@/style/theme/element-variables.scss'
  2. import { Message, MessageBox, Loading } from 'element-ui'
  3. Vue.use(Loading.directive)
  4. Vue.prototype.$loading = Loading.service
  5. Vue.prototype.$msgbox = MessageBox
  6. Vue.prototype.$alert = MessageBox.alert
  7. Vue.prototype.$confirm = MessageBox.confirm
  8. Vue.prototype.$prompt = MessageBox.prompt
  9. Vue.prototype.$message = Message

4、使用element-ui

打开官网,在组件里面选择要使用的代码直接cv大法

aa17bf06f36d47ac9de8fec9190e4238.png

Hallow.vue代码

  1. <template>
  2. <div>
  3. <el-table
  4. :data="tableData"
  5. style="width: 100%"
  6. :row-class-name="tableRowClassName">
  7. <el-table-column
  8. prop="date"
  9. label="日期"
  10. width="180">
  11. </el-table-column>
  12. <el-table-column
  13. prop="name"
  14. label="姓名"
  15. width="180">
  16. </el-table-column>
  17. <el-table-column
  18. prop="address"
  19. label="地址">
  20. </el-table-column>
  21. </el-table>
  22. <i class="fa fa-camera-retro fa-lg"></i> fa-lg
  23. </div>
  24. </template>
  25. <!-- props 自定义属性,可以在外部使用自定义的名称,不需要导入的方式来进行套娃 -->
  26. <script>
  27. export default {
  28. name: "Hello",
  29. data: function(){
  30. return {
  31. tableData: [{
  32. date: '2016-05-02',
  33. name: '王小虎',
  34. address: '上海市普陀区金沙江路 1518 弄',
  35. }, {
  36. date: '2016-05-04',
  37. name: '王小虎',
  38. address: '上海市普陀区金沙江路 1518 弄'
  39. }, {
  40. date: '2016-05-01',
  41. name: '王小虎',
  42. address: '上海市普陀区金沙江路 1518 弄',
  43. }, {
  44. date: '2016-05-03',
  45. name: '王小虎',
  46. address: '上海市普陀区金沙江路 1518 弄'
  47. }]
  48. }
  49. },
  50. methods: {
  51. tableRowClassName({row, rowIndex}) {
  52. if (rowIndex === 1) {
  53. return 'warning-row';
  54. } else if (rowIndex === 3) {
  55. return 'success-row';
  56. }
  57. return '';
  58. }
  59. }
  60. }
  61. </script>
  62. <style>
  63. .el-table .warning-row {
  64. background: oldlace;
  65. }
  66. .el-table .success-row {
  67. background: #f0f9eb;
  68. }
  69. </style>

效果

76a6009809f544a1ad8fa270237a2b6f.png

5、第三方图标库

由于Element UI提供的字体图符较少,一般会采用其他图表库,如著名的Font Awesome

Font Awesome提供了675个可缩放的矢量图标,可以使用CSS所提供的所有特性对它们进行更改,包括大小、颜色、阴影或者其他任何支持的效果。

文档地址:Font Awesome,一套绝佳的图标字体库和CSS框架

安装:npm install font-awesome

使用:import ‘font-awesome/css/font-awesome.min.css’

31af853d2a5f4769a5aa9b790cd4617b.png

也是一样的,直接cv大法

这里我是用了这行代码

  1. <i class="fa fa-camera-retro fa-lg"></i>

页面效果

9711d29814564d51afbbbaa1c5b9c189.png

不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!

d5358fcd619443fe98143f2fd5fef762.gif

发表评论

表情:
评论列表 (有 0 条评论,123人围观)

还没有评论,来说两句吧...

相关阅读