资讯专栏INFORMATION COLUMN

Vue 基础语法

saucxs / 1263人阅读

摘要:在生成的项目中,我们打开文件夹下组件,为便于演示,删减了一部分内容本文中的例子都将改造组件来演示语法一创建组件在中,有好几种方式用来创建组件,后面会多带带写一篇文章来介绍。表达式插值中也支持表达式插值用双大括号将表达式括起来。

Vue 的官方文档写的非常棒(另一个我觉得中文文档写的很好地是 Ant-Design)。

这篇文章以使用 vue-cli 生成的项目为基础,以完整 demo 的形式讲解 Vue 的基础语法。关于 vue-cli 生成项目的讲解,可以参考:vue-cli 构建 vue 项目详解 。

vue-cli 生成的项目中,我们打开 src/components 文件夹下 HelloWorld.vue 组件,为便于演示,删减了一部分内容(本文中的例子都将改造 HelloWorld.vue 组件来演示 Vue 语法):






一、创建组件
vue 中,有好几种方式用来创建组件,后面会多带带写一篇文章来介绍。

HelloWord.vue 文件中的内容分为三个部分:





分别在这三类标签里面写入结构、脚本、样式。 这个文件以 .vue 结尾(注意:其他创建组件方式是以 .js 结尾),这是 vue 中创建组件的一种方式:单文件组件。换句话说就是每个 .vue 文件就是一个组件。

有一点需要注意:template 只能允许一个子元素。

二、导入组件

现在的文件中,是在路由 router/index.js 中引入的 HelloWorld 组件:

import Vue from "vue";
import Router from "vue-router";
import HelloWorld from "@/components/HelloWorld";

Vue.use(Router);

export default new Router({
  routes: [
    {
      path: "/",
      name: "HelloWorld",
      component: HelloWorld,
    },
  ],
});

引入的方式一目了然,不再赘述。那如何在组件中引入组件呢?下面我们在 App 组件中直接引入 Helloworld 看看:





script 标签中,HelloWorld 组件被引入并添加到 components 属性中。这样,就在 App 组件中引入了 HelloWorld 组件。启动项目在浏览器中打开,会看到 App 组件中的内容:VueLogoHelloWorld 组件里的内容。

那如果要引入多个组件该怎么写呢?假设我们再有个 Demo 组件:



components 对象中定义多个属性,指向引入的组件即可。

三、插值和指令 1、插值(Interpolation)
文本插值:

Vue 插值最常见的形式就是使用双大括号 {% raw %}{{ }} {% endraw %} 的文本插值。在文章开头中的 HelloWorld 组件中就使用了插值的方式实现数据绑定。这里我们详细介绍一下:

Vue 组件中,都有一个 data 属性,data 必须是一个函数,该函数的返回值是一个对象。我们可以在 template 中通过双大括号来读取 data 中的属性值:



这里也通过使用 v-once 指令(下面我们要说),执行一次性地插值:当数据改变时,插值处的内容不会更新。但是要注意一次性插值会影响到该节点上的其它数据绑定。

属性插值:

如何在 template 中包裹的标签的属性上插值呢?假设我们有一个

3、单选按钮


4、复选按钮
单个复选框

绑定到布尔值:



多个复选框

绑定到同一个数组:



5、选择框
单选


多选


6、动态选项

非常常见的一个场景是,用 v-for 渲染的动态选项:



六、样式

HelloWorld 组件中,有一组 style 标签:


这就意味着我们可以在这个组件中定义任何样式。默认 style 标签上加了一个 scoped 属性,表示样式只在本组件内部生效,不用担心会影响其他组件。

1、链接到外部样式表
2、class 绑定

vueclass 绑定和 style 绑定都是用 v-bind 指令。 v-bind 指令允许我们动态控制何时以及是否应用 CSS 类和样式,以及 CSS 属性和值。看看怎么使用:





打开浏览器,我们会看到一个紫色的长方形。如果想在 showBannerfalse 的时候显示长方形,只需要对 showBanner 取反即可:

那如果需要绑定多个 class ,要怎么办呢?

用逗号分隔,然后在组件的 data 中定义另一个布尔属性,并在样式中定义 .another-class 即可。

但是如果 calss 继续增多,这种方式会让 template 变得很不干净,我们可以这样修改:





class 绑定的数据对象不必内联定义在模板里,抽离出来放在 data 函数的返回值里面。

3、style 绑定

class 绑定一样,vue 也使用 v-bind 指令来绑定 style :



为了让模板更加干净,我们也可以像下面这样调整:



注意:css 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case) 来命名。使用短横线分割时,需要用单引号把属性名括起来。
七、 Todolist

学习完 Vue 的基础语法,我们可以写一个 Todolist 来检验一下自己:

代码可参考:https://github.com/IDeepspace...

欢迎关注我的博客:https://togoblog.cn/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101451.html

相关文章

  • (原创)vue 学习笔记

    摘要:菜鸟教程这是一个属性其值是字符串菜鸟教程同上这是一个属性其值是字符串用于定义的函数,可以通过来返回函数值。它们都有前缀,以便与用户定义的属性区分开来。 开篇语 我最近学习了js,取得进步,现在学习vue.js.建议新手学习,请不要用npm的方式(vue-cli,vue脚手架),太复杂了. 请直接下载vue.js文件本地引入,就上手学习吧参照菜鸟教程网站的vue.js教程http://...

    layman 评论0 收藏0
  • Vue入门--基础语法

    摘要:在模板中放入太多的逻辑会让模板过重且难以维护。它会根据控件类型自动选取正确的方法来更新元素。指令需要使用的语法,指的是原数据数组,指的是迭代的数组元素。 注:本教程所使用的vue版本为 2.5.16 MVC与MVVM MVC(Model-View-Controller): M指的是从后台获取到的数据, V指的是显示动态数据的html页面, C是指响应用户操作、经过业务逻辑处理后去更新...

    haoguo 评论0 收藏0
  • vue.js入门教程之基础语法

    摘要:与绑定数据绑定一个常见需求是操作元素的列表和它的内联样式。两者只能选其一对象语法我们可以传给一个对象,以动态地切换。注意不支持语法。相比之下,简单得多元素始终被编译并保留,只是简单地基于切换。这意味着将分别重复运行于每个循环中。 vue Class 与 Style 绑定 数据绑定一个常见需求是操作元素的 class 列表和它的内联样式。因为它们都是属性,我们可以用 v-bind 处理...

    pumpkin9 评论0 收藏0
  • vue基础语法

    摘要:与绑定据绑定一个常见需求是操作元素的列表和它的内联样式用绑定绑定语法有对象语法数组语法计算属性语法用数组的方法用计算属性传值绑定语法用在组件时这些类将被添加到根元素上面,这个元素上已经存在的类不会被覆盖。这些方法如下过滤和排序 vue.js Class 与 Style 绑定 据绑定一个常见需求是操作元素的 class 列表和它的内联样式用v-bind绑定 *绑定语法 有 对象语法 ...

    coordinate35 评论0 收藏0
  • vue初探-简易留言板

    摘要:学完的基础语法之后,练手一下,从最基本的留言板开刀吧。功能不多,主要为了熟悉的基础语法使用。 学完vue的基础语法之后,练手一下,从最基本的留言板开刀吧。功能不多,主要为了熟悉vue的基础语法使用。详细vue教程请移步vue.js 2.0 技术框架 1.vue.js 2.0 2.bootstrap 语法概述 这里只写一点此例子用到的一些语法知识,详细API请移步:vue 2.0 a...

    GHOST_349178 评论0 收藏0

发表评论

0条评论

saucxs

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<