Vue.js 十五分钟入门图文教程


Posted in Javascript onSeptember 12, 2018

TypeScript 为 JavaScript 带来静态类型检查,让 JavaScript 编写中大型应用的时候可以应用工具来避免部分错误。

Vue.js 十五分钟入门图文教程

Vue 很早就支持 TypeScript,但配置起来比较麻烦,幸好有了 Vue CLI 3.0。安装好 vue-cli 之后,使用 vue create 项目名称 来创建项目,vue 脚本手架自动创建以项目名称命名的目录。

Vue.js 十五分钟入门图文教程

vue-cli 3 生成的项目结构比较科学,尤其是通过 componentsviews 将作为控件的组件和作为页面的组件分离开来,结构更清晰。可以理解为 views 中定义的组件是要配置在路由中的,而 componets 中定义的组件是被其它组件调用的。

Vue.js 十五分钟入门图文教程

HTML 需要定义一个 <div> 作为 Vue 应用的容器,main.ts 中会通过 new Vue(...) 生成应用实例并将之与容器绑定。注意 HTML 中定义的 <div id="app"></div> 会被 App.vue 模板中定义的 <div id="app">...</div> 替换掉。

Vue.js 十五分钟入门图文教程

Vue 是一个组件化的框架,组件是 Vue 的基本元素。一个 Vue 应用是由若干组件构成的,组件与组件之间的嵌套或并列关系,最终可以用树形来表示。main.ts 中创建的 Vue 实例是最顶层组件。

Vue.js 十五分钟入门图文教程

每个 Vue 组件都有三个组成部分,即骨架(HTML)、样式(CSS/LESS/SCSS)和脚本(JavaScript/TypeScript)。可以在一个 .vue 文件中写完三个部分,也可以将样式和脚本部分分别写成独立的文件。笔者推荐独立文件的方式。

既然我们选用 TypeScript,使用上图所示的 class-style 来实现 Vue 组件更为适合。

Vue.js 十五分钟入门图文教程

除了 class-style 之外,也可以使用 config-style。配置风格是最早支持的风格,将 Vue 的各类成员(属性、数据、计算属性、方法等)独立定义,易于理解 Vue 实例的内部结构,但初学者容易搞不清楚 this 指向。

Vue.js 十五分钟入门图文教程

Vue 定义的组件需要注册才能在其它组件中使用。注册的方式分为全局和局部两种。使用 TypeScript 和类风格开发 Vue 应用时,推荐使用局部注册。局部注册比较符合模式化开发思想。

Vue.js 十五分钟入门图文教程

Vue 可以通过 {{ }} 语法在文本中插值。但是如果要将值插入属性,则应使用 : 号修饰属性名。组件属性(指 HTML 标签参数)可随意定义,加 @Prop() 修饰即可,如果属性是必须的,应该使用 : 来定义;可选属性则使用 !: 来定义。

Vue.js 十五分钟入门图文教程

在 HTML 或自定义组件标签中使用 @ 前缀的事件名,可以绑定事件处理函数。Vue 实现了部分 HTML 事件,比如 @click 可以直接绑定。组件也可以“定义”自己的事件,不需要提前声明,只需要 this.$emit() 直接触发即可。

Vue.js 十五分钟入门图文教程

Vue 本身是数据驱动渲染,所以数据(包括属性、计算属性等)变化可以触发界面数据呈现,但是界面的输入要反馈给组件,就需要用触发事件的方式来反馈。双向绑定是用于更新属性事件的语法糖,使用 :属性名.sync="..." 绑定。子组件中通过触发 update:属性名 事件来更新父组件中绑定的数据。

Vue.js 十五分钟入门图文教程

路由主要用于组织视图(页面)关系。最基本的要求是为路由配置每个路径对应的组件。name 可以当作路径的简短别名。路由操作一般会使用注入到 Vue 实例中的 $router 对象,常用 $router.push()$router.replace() 来跳转,二者的区别在于对 URL 历史的影响(可以想像)

路由项配置中的 component 可以指定为导入的的组件类,也可以指定一个异步(返回 Promise 的)函数,该函数动态加载组件并返回包含该组件类的 Promise 对象。上例中使用的 import() 动态引入语法。

做一个简单的登录界面加深对前面知识的理解和记忆。该示例特意避免了 Ajax 调用,以降低其复杂程度。

Vue.js 十五分钟入门图文教程

没有 Ajax 实现的远程认证,我们只能假设用户输入 pass 时为正确密码。用户名可任意输入,如果验证成功则会显示该用户已登录。

Vue.js 十五分钟入门图文教程

项目仍然是由 vue-cli 3 创建的。创建好之后去掉了 AboutHelloWorld,加入了 Login,并将 Home 改造成三部分各自独立的文件结构。当然,顺便还按自己(或团队)的开发规范调整了下 tslint.json 中的配置。

Vue.js 十五分钟入门图文教程

App.vue、main.ts 和 router.ts 可以算得上是一个 Vue 应用的入口和基本配置。App.vue 中直接把控制权交给了 vue-router。注意,import 的时候不能省略 .vue 扩展名。

Vue.js 十五分钟入门图文教程

Login 组件中用到了双向绑定,由于属性(由 @Prop() 修饰)不可以在内部修改,甚至可以把它声明为 readonly(也许 Vue 3 会定义相关的规范)。注意到 keypress 事件有一个后缀,这在 Vue 中称为事件修饰符,可以用于快速处理一些特殊情况,比如 keypress.enter 表示Enter按下时。

Vue.js 十五分钟入门图文教程

在 Home 中使用 Login 组件时,Homeuser 数据字段绑定到了 Loginuser 属性上,.sync 修饰符表示这是一个双向绑定。前面 Login 的代码中,如果登录成功,Login 会通过 $emit("update:user", {...}) 来通知绑定数据发生变化,Vue 框架接收到这个通知并更新了绑定的 Home.user,这会导致计算属性 message 重算,并最终触发呈现“某用户已登录”。

Vue 入门很简单吧!

不过 Vue 本身含有非常丰富的功能,要用 Vue 搭建完整的应用,仍然需要了解大量 Vue 设计概念和操作技巧。建议读者们仔细阅读 Vue 官方提供教程和 API 手册,并保持在 Vue 相关技术社区的活跃度。

原码下载:点击此处下载

总结

以上所述是小编给大家介绍的Vue.js 十五分钟入门图文教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS 实现双色表格实现代码
Nov 24 Javascript
最简单的JavaScript图片轮播代码(两种方法)
Dec 18 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
Dec 23 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
Sep 05 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
详解Vue自定义过滤器的实现
Jan 10 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
Jun 09 Javascript
Bootstrap实现省市区三级联动(亲测可用)
Jul 26 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
Aug 04 Javascript
微信小程序模板消息推送的两种实现方式
Aug 27 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 Javascript
Vue通过ref父子组件拿值方法
Sep 12 #Javascript
webpack4 升级迁移的实现
Sep 12 #Javascript
React 项目迁移 Webpack Babel7的实现
Sep 12 #Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 #Javascript
在Vue中获取组件声明时的name属性方法
Sep 12 #Javascript
浅谈webpack4 图片处理汇总
Sep 12 #Javascript
vue二级菜单导航点击选中事件的方法
Sep 12 #Javascript
You might like
多数据表共用一个页的新闻发布
2006/10/09 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
python+opencv轮廓检测代码解析
2018/01/05 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
keras中的History对象用法
2020/06/19 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
心得体会开头
2014/01/01 职场文书
婚礼证婚人证婚词
2014/01/08 职场文书
高中校园广播稿
2014/01/11 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
亲属关系公证书样本
2015/01/23 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
安全学习心得体会范文
2016/01/18 职场文书
入党申请书怎么写?
2019/06/21 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书