ToB企服应用市场:ToB评测及商务社交产业平台

标题: 苍穹外卖-day13(vue基础回顾+进阶):vue基础(脚手架、根本语法,axios, [打印本页]

作者: 铁佛    时间: 2024-11-15 06:05
标题: 苍穹外卖-day13(vue基础回顾+进阶):vue基础(脚手架、根本语法,axios,
vue基础回顾+进阶

课程内容


1. VUE 基础回顾

1.1 基于脚手架创建前端工程

1.1.1 环境要求

要想基于脚手架创建前端工程,需要具备如下环境要求:

安装完node.js后,可以通过命令行来查看版本号,如下:

安装 Vue CLI,命令如下:

1.1.2 操纵过程

利用 Vue CLI 创建前端工程的方式:


重点先容利用 vue ui 命令创建前端工程的过程:
第一步:同样首先以管理员的方式打开命令行窗口,之后切换到一个非中文的目录(这个目录当做我们的VScode工作空间),在命令行输入命令 vue ui,在浏览器ui界面中选择前端工程存放的位置


第二步:点击“在此创建新项目”按钮,跳转到创建新项目设置页面。填写项目名称、选择包管理器为npm,点击“下一步”按钮

第三步:选择 Default(Vue 2),点击"创建项目"按钮,完成项目的创建




1.1.3 工程结构

工程目录结构:

1.1.4 启动前端服务

利用VS Code打开创建的前端工程,启动前端工程:

访问前端工程:

注:要停止前端服务,可以在命令行终端利用 ctrl + C
前端项目启动后,服务端口默以为8080,很容易和后端tomcat端口号冲突。如何修改前端服务的端口号?
可以在vue.config.js中配置前端服务端口号:

  1. const { defineConfig } = require('@vue/cli-service')
  2. module.exports = defineConfig({
  3.   transpileDependencies: true,
  4.   devServer: {
  5.     port: 7070  //指定前端服务端口号
  6.   }
  7. })
复制代码
1.2 vue根本利用方式

本章节从如下几个方面举行vue回顾:

1.2.1 vue 组件

Vue 的组件文件以 .vue 末了,每个组件由三部门组成:


1.2.2 测试准备工作

说明:

1.2.3 文本插值

作用:用来绑定 data 方法返回的对象属性
用法:{{插值表达式}}
示例:

测试:
代码:

  1. <template>
  2.   <div class="hello">
  3.     {{name}}
  4.     {{age > 60 ? '老年' : '青年'}}
  5.   </div>
  6. </template>
  7. <script>
  8. export default {
  9.   name: 'HelloWorld',
  10.   props: {
  11.     msg: String
  12.   },
  13.   data() {
  14.     return {
  15.       name: '张三',
  16.       age: 22
  17.     }
  18.   },
  19.   
  20. }
  21. </script>
  22. <!-- Add "scoped" attribute to limit CSS to this component only -->
  23. <style scoped>
  24. h3 {
  25.   margin: 40px 0 0;
  26. }
  27. ul {
  28.   list-style-type: none;
  29.   padding: 0;
  30. }
  31. li {
  32.   display: inline-block;
  33.   margin: 0 10px;
  34. }
  35. a {
  36.   color: #42b983;
  37. }
  38. </style>
复制代码
效果:

1.2.4 属性绑定

作用:为标签的属性绑定 data 方法中返回的属性
用法:v-bind:xxx,简写为 :xxx
示例:

测试:
代码

效果

1.2.5 事件绑定

作用:为元素绑定对应的事件
用法:v-on:xxx,简写为 @xxx
示例:

测试:
代码

效果

1.2.6 双向绑定

作用:表单输入项和 data 方法中的属性举行绑定,任意一方改变都会同步给另一方
用法:v-model
示例:

测试:
代码

效果:修改输入框的值name会发生变化,点击事件方法修改name的值输入框的值会跟着改变


1.2.7 条件渲染

作用:根据表达式的值来动态渲染页面元素
用法:v-if、v-else、v-else-if
示例:

测试:
代码

效果

1.2.8 axios

Axios 是一个基于 promise 的 网络哀求库,作用于浏览器和 node.js 中。利用Axios可以在前端项目中发送各种方式的HTTP哀求。
安装axios的命令:npm install axios(以管理员的方式打开VScode)

导入:import axios from 'axios'

axios 的 API 列表:[ ]代表可选参数,可以有可以没有。

参数说明:

注:在利用axios时,经常会遇到跨域问题。为相识决跨域问题,可以在 vue.config.js 文件中配置代理
  1. const { defineConfig } = require('@vue/cli-service')
  2. module.exports = defineConfig({
  3.   transpileDependencies: true,
  4.   devServer: {
  5.     port: 7070,
  6.     proxy: {
  7.       '/api': {
  8.         target: 'http://localhost:8080',
  9.         pathRewrite: {
  10.           '^/api': ''
  11.         }
  12.       }
  13.     }
  14.   }
  15. })
复制代码
axios的post哀求示例:
  1. axios.post('/api/admin/employee/login',{
  2.       username:'admin',
  3.       password: '123456'
  4.     }).then(res => {
  5.       console.log(res.data)
  6.     }).catch(error => {
  7.       console.log(error.response)
  8.     })
复制代码
axios的get哀求示例:
  1. axios.get('/api/admin/shop/status',{
  2.         headers: {
  3.           token: ‘xxx.yyy.zzz’
  4.         }
  5.       })
复制代码
axios提供的统一利用方式示例一(可以发送各种方式的哀求):

axios提供的统一利用方式示例二(可以发送各种方式的哀求):
  1. axios({
  2.       url: '/api/admin/employee/login',
  3.       method:'post',
  4.       data: {
  5.         username:'admin',
  6.         password: '123456'
  7.       }
  8.     }).then((res) => {
  9.       console.log(res.data.data.token)
  10.       axios({
  11.         url: '/api/admin/shop/status',
  12.         method: 'get',
  13.         params: {id: 100},
  14.         headers: {
  15.           token: res.data.data.token
  16.         }
  17.       })
  18.     }).catch((error) => {
  19.       console.log(error)
  20.     })
复制代码
1.2.9 axios 测试:没有配置跨域----post哀求

HelloWorld.vue代码:


  1. <input type="button" value="发送POST请求" @click="handleSendPOST"/>
  2.     handleSendPOST() {
  3.       //通过axios发送post请求 提供了url  data  没有提供config
  4.       //地址是苍穹外卖后台登录的接口地址,后台项目要先启动
  5.       axios.post('http://localhost:8080/admin/employee/login',{
  6.         username: 'admin',
  7.         password: '123456'
  8.       }).then(res => {  //调用成功的回调函数
  9.         console.log(res.data)
  10.       }).catch(error => { //调用失败的回调函数
  11.         console.log(error.response)
  12.       })
  13.     },
复制代码
启动后台项目,启动前端项目vue-demo-2,点击按钮发送哀求发现前后台没有任何反应,f12查看控制台发现报错(发生了跨域)



原因:发生了跨域问题,前端的访问端口是7070,后端的是8080,当前是在7070服务中往8080这个端口发送,以是产生了跨域。
解决:需要配置代理
1.2.10 axios 测试:配置跨域----post哀求

为相识决跨域问题,可以在 vue.config.js 文件中配置代理
代理的作用:前端发送的哀求先哀求到代理上,然后由代理举行转发到我们的后台服务,这样就可以解决跨域问题了。

  1. const { defineConfig } = require('@vue/cli-service')
  2. module.exports = defineConfig({
  3.   transpileDependencies: true,
  4.   devServer: {
  5.     port: 7070,
  6.     proxy: {
  7.       '/api': {//拦截前端发送的请求都含有api前缀的地址
  8.         target: 'http://localhost:8080',//拦截后转发到的目标服务器地址
  9.         pathRewrite: {//请求转发到后端后,后端接口路径多了个/api,匹配不上找不到controller,所以需要去掉
  10.           '^/api': '' //路径重写:把/api替换为空串  ^api表示以/api作为开头
  11.         }
  12.       }
  13.     }
  14.   }
  15. })
复制代码
修改HelloWorld.vue中发送的后台哀求地址:http://localhost:8080—》/api

因为修改的是配置文件以是需要重启前端项目才能生效

再次发送哀求:


1.2.11 axios 测试:get哀求

HelloWorld.vue代码:


  1. <input type="button" value="发送GET请求" @click="handleSendGET"/>
  2.     handleSendGET() {
  3.       //通过axios发送get方式请求  指定了url(店铺的营业状态)  指定config
  4.       axios.get('/api/admin/shop/status',{
  5.         //这个请求需要携带jwt的令牌地址才能正确访问,复制上面发送post请求调用登录接口生成的令牌地址
  6.         headers: { //指定config,在请求头里追加参数token
  7.           token: 'eyJhbGciOiJIUzI1NiJ9.eyJlbXBJZCI6MSwiZXhwIjoxNzEwNjkyMTgxfQ.WAb2SoElTlJcobDCXUAqKPlm0At68LAexTz1MTwZdz4'
  8.         }
  9.       }).then(res => {
  10.         console.log(res.data)
  11.       })
  12.     },
复制代码
对应的店铺营业状态接口:

首先发送post哀求,复制返回的token.


刷新页面发送get哀求:乐成

1.2.12 axios 测试:通用方式发送哀求

axios 统一利用方式:axios(config)
HelloWorld.vue代码:


  1. <input type="button" value="统一请求方式" @click="handleSend"/>
  2.     handleSend() {
  3.       //使用axios提供的统一调用方式发送请求
  4.       axios({
  5.         url: '/api/admin/employee/login',
  6.         method: 'post',  //默认是get
  7.         data: { //data表示通过请求体传参  
  8.           username: 'admin',
  9.           password: '123456'
  10.         }
  11.       }).then(res => {//成功回调
  12.         console.log(res.data.data.token) //res.data:返回的result对象,里面包含data,data中又包含token
  13.         axios({  //在成功的回调函数里又发送一个get请求   获取店铺的营业状态
  14.           url: '/api/admin/shop/status',
  15.           method: 'get',
  16.           headers: {
  17.             token: res.data.data.token //因为这个get方法实际上是在post请求的回调函数里面,所以这个地方可以动态的获取token
  18.           }
  19.         })
  20.       })
  21.     }
复制代码
测试:2次哀求都乐成发送


2. 路由 Vue-Router

2.1 Vue-Router 先容

vue 属于单页面应用,所谓路由,就是根据浏览器路径不同,用不同的视图组件替换这个页面内容。
单页面应用:在整个vue应用中,实际上只有一个页面,我们看到的浏览器多个页面实在是一种假象,它是通过页面切换 切换不同的视图组件
现实举例:一块黑板,不同的老师上课把之前老师写的内容删除掉,之后写上本身课的内容。
这个替换的过程就是通过路由来完成的。


如上图所示:不同的访问路径,对应不同的页面展示
基于Vue CLI 创建带有路由功能的前端项目:
在vue应用中利用路由功能,需要安装Vue-Router:






注:创建完带有路由功能的前端项目后,在工程中会天生一个路由文件,如下所示:

关于路由的配置,重要就是在这个路由文件中完成的。
为了能够利用路由功能,在前端项目的入口文件main.js中,创建Vue实例时需要指定路由对象:
创建完路由项目后主动天生

启动项目查看效果:点击不同的地址会主动切换页面

说明:

2.2 路由配置

首先相识一下路由组成:


这三部门之间是如何协作的:

具体配置方式:
基于脚手架创建前端项目的时候勾选了路由功能,此时工程中路由的代码已经主动天生好了。
首先在package.json里面参加vue-router:此时就可以在前端项目中利用路由功能了

然后在main.js入口文件中引入router,这个router来自于index.js文件

找到router下面有一个index.js,然后在这个文件里引入VueRouter,这个VueRouter来自于node_modules(生存创建好项目之后所依赖的包)中的vue-router里



  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. import HomeView from '../views/HomeView.vue'
  4. Vue.use(VueRouter)
  5. //维护路由表,某个路由路径对应哪个视图组件
  6. const routes = [
  7.   {
  8.     path: '/',   //对应一个路由路径
  9.     name: 'home',  //名字
  10.     component: HomeView  //路径所对应的视图组件   方式一:静态导入,最终项目上线需要打包,打包会把这些组件
  11.   },                     //                             打到同一个js文件里面,两种打包方式不同
  12.                          //                        性能稍差:不管你视图展示不展示都打入到同一个js文件里面,导致这个js文件非常大,
  13.                          //                                  哪怕你这个视图从来没有强求过没显示过,但是这部分资源已经加载了,
  14.   {
  15.     path: '/about',
  16.     name: 'about',
  17.     // route level code-splitting
  18.     // this generates a separate chunk (about.[hash].js) for this route
  19.     // which is lazy-loaded when the route is visited.
  20.     //方式二:动态导入(推荐)  懒加载策略:打包的时候会单独的把这些组件打到js文件里面
  21.     //                   性能更好:按需引入因为它是单独的把这些视图组件单独的打到js文件里面,
  22.     //                            只有请求这个视图它才会加载这个js文件,如果不请求就不会加载了。
  23.     component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  24.   }
  25. ]
  26. const router = new VueRouter({
  27.   routes
  28. })
  29. export default router
复制代码
  1.       <router-link to="/">Home</router-link> |  <!-- 路由链接组件生成超链接 -->
  2.       <router-link to="/about">About</router-link>
复制代码


要实现路由跳转,可以通过标签式和编程式两种:

测试编程式:
代码:

  1. <input type="button" value="编程式路由跳转" @click="jump"/> <!-- 方法不需要参数的话()可以省略掉 -->
  2. <script>
  3. export default {
  4.   methods: {
  5.     jump() {
  6.       //使用编程路由的方式跳转   具体的路由路径(路由表中配置的路径)
  7.       this.$router.push('/about',()=> {})
  8.     }
  9.   }
  10. }
  11. </script>
复制代码
效果:点击按钮也能跳转到about页面


问题思考:如果用户访问的路由地址不存在,该如何处理?
可以通过配置一个404视图组件,当访问的路由地址不存在时,则重定向到此视图组件,具体配置如下:
index.js文件:路由表

  1.   /* 只写这一个配置的效果:我们访问到404路径的时候就可以访问到这个组件,而我们的需求是
  2.      当用户访问一个不存在的路径时才会跳转到404视图去展示,所以还需要接着配置重定向*/
  3.   {
  4.     path: '/404',   //name可以不用配置
  5.     component: () => import('../views/404View.vue')
  6.   },
  7. /* 配置重定向流程:当用户访问到一个不存在的路径就会重定向到/404,/404路径对应的就是404页面组件 */
  8.   {
  9.     path: '*', //上面这些访问的路径都没匹配上才会走这最后一个路径
  10.     redirect: '/404' //重定向到/404访问路径,
  11.   }
复制代码
App.vue:超链接
  1. <router-link to="/test">Test</router-link> |   <!-- 没有对应的路由路径/test -->
复制代码

路由哀求路径不存在,跳转的页面组件:

  1. <template>
  2.   <div class="about">
  3.     <h1>您请求的资源不存在</h1>
  4.   </div>
  5. </template>
复制代码
效果:

2.3 嵌套路由

嵌套路由:组件内要切换内容,就需要用到嵌套路由(子路由),效果如下:
在App.vue视图组件中有<router-view>标签,其他视图组件可以展示在此

ContainerView.vue组件可以展示在App.vue视图组件的<router-view>位置

ContainerView.vue组件举行了区域分别(分为上、左、右),在右边编写了<router-view>标签,点击左侧菜单时,可以将对应的子视图组件展示在此

总结:

实现步骤:
第一步:安装并导入 elementui,实现页面布局(Container 布局容器)—ContainerView.vue
安装: elementui

  1. npm i element-ui -S
复制代码

导入: elementui,在 main.js 中写入以下内容:

  1. import ElementUI from 'element-ui';
  2. import 'element-ui/lib/theme-chalk/index.css';
  3. Vue.use(ElementUI);//全局使用ElementUi
复制代码
实现页面布局(Container 布局容器)—ContainerView.vue

  1. <template>
  2.   <el-container>
  3.     <el-header>Header</el-header>
  4.     <el-container>
  5.         <el-aside width="200px">
  6.         </el-aside>
  7.         <el-main>
  8.         </el-main>
  9.     </el-container>
  10.   </el-container>
  11. </template>
  12. <script>
  13. export default {
  14. }
  15. </script>
  16. <style>
  17. .el-header, .el-footer {
  18.     background-color: #B3C0D1;
  19.     color: #333;
  20.     text-align: center;
  21.     line-height: 60px;
  22.   }
  23.   
  24.   .el-aside {
  25.     background-color: #D3DCE6;
  26.     color: #333;
  27.     text-align: center;
  28.     line-height: 200px;
  29.   }
  30.   
  31.   .el-main {
  32.     background-color: #E9EEF3;
  33.     color: #333;
  34.     text-align: center;
  35.     line-height: 160px;
  36.   }
  37.   
  38.   body > .el-container {
  39.     margin-bottom: 40px;
  40.   }
  41.   
  42.   .el-container:nth-child(5) .el-aside,
  43.   .el-container:nth-child(6) .el-aside {
  44.     line-height: 260px;
  45.   }
  46.   
  47.   .el-container:nth-child(7) .el-aside {
  48.     line-height: 320px;
  49.   }
  50. </style>
复制代码
第二步:提供子视图组件,用于效果展示 —P1View.vue、P2View.vue、P3View.vue

  1. <template>
  2.   <div>
  3.     这是P1 View
  4.   </div>
  5. </template>
  6. <script>
  7. export default {
  8. }
  9. </script>
  10. <style>
  11. .el-header, .el-footer {
  12.     background-color: #B3C0D1;
  13.     color: #333;
  14.     text-align: center;
  15.     line-height: 60px;
  16.   }
  17.   
  18.   .el-aside {
  19.     background-color: #D3DCE6;
  20.     color: #333;
  21.     text-align: center;
  22.     line-height: 200px;
  23.   }
  24.   
  25.   .el-main {
  26.     background-color: #E9EEF3;
  27.     color: #333;
  28.     text-align: center;
  29.     line-height: 160px;
  30.   }
  31.   
  32.   body > .el-container {
  33.     margin-bottom: 40px;
  34.   }
  35.   
  36.   .el-container:nth-child(5) .el-aside,
  37.   .el-container:nth-child(6) .el-aside {
  38.     line-height: 260px;
  39.   }
  40.   
  41.   .el-container:nth-child(7) .el-aside {
  42.     line-height: 320px;
  43.   }
  44. </style>
复制代码
第三步:在 src/router/index.js 中配置路由映射规则(嵌套路由配置)

  1.    {
  2.     path: '/c',
  3.     component: () => import('../views/container/ContainerView.vue'),
  4.     //嵌套路由(子路由),对应的组件会展示在当前组件内部
  5.     children: [//通过children属性指定子路由相关信息(path、component)
  6.       {
  7.         path: '/c/p1',
  8.         component: () => import('../views/container/P1View.vue')
  9.       },
  10.       {
  11.         path: '/c/p2',
  12.         component: () => import('../views/container/P2View.vue')
  13.       },
  14.       {
  15.         path: '/c/p3',
  16.         component: () => import('../views/container/P3View.vue')
  17.       }
  18.     ]
  19.   }
复制代码
第四步:在ContainerView.vue 布局容器视图中添加,实现子视图组件展示

  1. <el-main>
  2.     <router-view/>
  3. </el-main>
复制代码
第五步:在ContainerView.vue 布局容器视图中添加,实现路由哀求

  1. <el-aside width="200px">
  2.     <router-link to="/c/p1">P1</router-link><br>
  3.     <router-link to="/c/p2">P2</router-link><br>
  4.     <router-link to="/c/p3">P3</router-link><br>
  5. </el-aside>
复制代码
效果:http://localhost:8080/#/c

点击超链接(http://localhost:8080/#/c/p1)右侧会举行替换组件。

注意:子路由变化,切换的是【ContainerView 组件】中 <router-view></router-view> 部门的内容
问题思考:
1.对于前面的案例,如果用户访问的路由是 /c,会有什么效果呢?

2.如何实现在访问 /c 时,默认就展示某个子视图组件呢?
配置重定向,当访问/c时,直接重定向到/c/p1即可,如下配置:


  1. redirect :'/c/p1',
复制代码
效果:

3. 状态管理 vuex(待定:P177)

3.1 vuex 先容


每一个 Vuex 应用的焦点就是 store(堆栈)。“store”根本上就是一个容器,它包罗着你的应用中大部门的状态 (state)。Vuex 和单纯的全局对象有以下两点不同:
安装vuex:npm install vuex@next --save
vuex中的几个焦点概念:

3.2 利用方式

本章节通过一个案例来学习vuex的利用方式,具体操纵步骤如下:
第一步:创建带有vuex功能的前端项目

注:在创建的前端工程中,可以发现主动创建了vuex相干的文件(src/store/index.js),并且在main.js中创建Vue实例时,需要将store对象传入,代码如下:
  1. import Vue from 'vue'
  2. import App from './App.vue'
  3. import store from './store'
  4. Vue.config.productionTip = false
  5. new Vue({
  6.   store,//使用vuex功能
  7.   render: h => h(App)
  8. }).$mount('#app')
复制代码
第二步:在src/store/index.js文件中集中定义和管理共享数据
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import axios from 'axios'
  4. Vue.use(Vuex)
  5. //集中管理多个组件共享的数据
  6. export default new Vuex.Store({
  7.   //集中定义共享数据
  8.   state: {
  9.     name: '未登录游客'
  10.   },
  11.   getters: {
  12.   },
  13.   //通过当前属性中定义的函数修改共享数据,必须都是同步操作
  14.   mutations: {
  15.   },
  16.   //通过actions调用mutation,在actions中可以进行异步操作
  17.   actions: {
  18.   },
  19.   modules: {
  20.   }
  21. })
复制代码
第三步:在视图组件中展示共享数据
  1. <template>
  2.   <div class="hello">
  3.     <h1>欢迎你,{{$store.state.name}}</h1>
  4.   </div>
  5. </template>
复制代码
注:$store.state为固定写法,用于访问共享数据
第四步:在mutations中定义函数,用于修改共享数据
  1.   //通过当前属性中定义的函数修改共享数据,必须都是同步操作
  2.   mutations: {
  3.     setName(state,newName) {
  4.       state.name = newName
  5.     }
  6.   },
复制代码
第五步:在视图组件中调用 mutations 中定义的函数

注:mutations中定义的函数不能直接调用,必须通过状态对象的 commit 方法来调用
第六步:如果在修改共享数据的过程中有异步操纵,则需要将异步操纵的代码编写在actions的函数中
  1.   //通过actions调用mutation,在actions中可以进行异步操作
  2.   actions: {
  3.     setNameByAxios(context){
  4.       axios({ //异步请求
  5.         url: '/api/admin/employee/login',
  6.         method: 'post',
  7.         data: {
  8.           username: 'admin',
  9.           password: '123456'
  10.         }
  11.       }).then(res => {
  12.         if(res.data.code == 1){
  13.           //异步请求后,需要修改共享数据
  14.           //在actions中调用mutation中定义的setName函数
  15.           context.commit('setName',res.data.data.name)
  16.         }
  17.       })
  18.     }
  19.   },
复制代码
注:在actions中定义的函数可以声明context参数,通过此参数可以调用mutations中定义的函数
第七步:在视图组件中调用actions中定义的函数

注:在actions中定义的函数不能直接调用,必须通过 this.$store.dispatch(‘函数名称’) 这种方式调用
4. TypeScript

4.1 TypeScript 先容





在前端项目中利用TS,需要举行安装,命令为:npm install -g typescript
查看TS版本:

TS初体验:
  1. //定义一个函数 hello,并且指定参数类型为string
  2. function hello(msg:string) {
  3.       console.log(msg)
  4. }
  5. //调用上面的函数,传递非string类型的参数
  6. hello(123)
复制代码

可以看到编译报错,提示参数范例不匹配。这说明在编译时TS会举行范例查抄。需要注意的是在编译为JS文件后,范例会被擦除。
思考:TS 为什么要增长范例支持 ?

在前端项目中利用TS,需要创建基于TS的前端工程:


4.2 TypeScript 常用范例

TS中的常用范例如下:
范例备注字符串范例string数字范例number布尔范例boolean数组范例number[],string[], boolean[] 依此类推任意范例any相称于又回到了没有范例的时代复杂范例type 与 interface函数范例() => void对函数的参数和返回值举行说明字面量范例“a”|“b”|“c”限制变量或参数的取值class 类class Animal 4.2.1 范例标注的位置

基于TS举行前端开辟时,范例标注的位置有如下3个:


4.2.2 字符串、数字、布尔范例

字符串、数字、布尔范例是前端开辟中常用的范例

4.2.3 字面量范例

字面量范例用于限定命据的取值范围,雷同于java中的枚举

4.2.4 interface 范例

interface 范例是TS中的复杂范例,它让 TypeScript 具备了 JavaScript 所缺少的、描述较为复杂数据结构的本领。

可以通过在属性名后面加上?,表示当前属性为可选,如下:

4.2.5 class 范例

利用 class 关键字来定义类,类中可以包罗属性、构造方法、普通方法等

在定义类时,可以利用 implments 关键字实现接口,如下:

在定义类时,可以利用 extends 关键字 继承其他类,如下:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4