《Vue3实战》 第三章 基础语法

简介: 《Vue3实战》 第三章 基础语法

前言:Vue基础语法、模板语法

1、hello world

1.1、App.vue 中改造模板

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <HelloWorld msg="hello vue!"/>
</template>

1.2、改造HelloWorld.vue组件

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>    
  </div>
</template>

以上是组件传递参数msg({{ }} 用于输出对象属性和函数返回值)

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  }
}

data()函数传递参数(data 选项是一个函数。Vue 在创建新组件实例的过程中调用此函数)

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  data(){
    return {
      message : "zhangsan"
    }
  }
}

1.3、通过方法 改变data定义的值

在HelloWorld.vue中定义方法changeHello()

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>    
    <h1>{{message}} </h1>
    <h1>{{hello}}</h1>
  </div>
</template>
<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  data(){
    return {
      message : "Tiger",
      hello : "Hello Tiger"
    }
  },
  methods:{
    changeHello(){
      this.hello = "Hello Vue"
    }
  }
}

在App.vue中定义ref

<HelloWorld msg="hello vue!" ref="hello_world"/>

Vue代码中加mounted方法

export default {
  name: 'App',
  components: {
    HelloWorld
  },
  mounted(){
    this.$refs.hello_world.changeHello();
  }  
}

2、模板语法

2.1、插值-文本

数据绑定最常见的形式就是使用 {{…}}(双大括号)的文本插值

{{msg}}

2.2、插值-Html

使用 v-html 指令用于输出 html 代码

<h1 v-html="rawHtml"></h1>
data(){
    return {
      message : "Tiger",
      hello : "Hello Tiger",
      rawHtml : '<font color="red">Hello,张三</font>'
    }
  }

2.3、插值-属性

HTML 属性中的值应使用 v-bind 指令

<h1> <input type="text" v-model="displayDiv" id="displayDiv"></h1>
<div v-bind:style="{'display': displayDiv}">
    今天天空很蓝
  </div>
data(){
    return {
      message : "Tiger",
      hello : "Hello Tiger",
      rawHtml : '<font color="red">张三</font>',
      displayDiv : 'block'
    }
  }

2.4、插值-表达式

<h1>
      {{8*8}}<br/>
      {{flag ? "pass":"not pass"}}<br/>
      {{train.split('').reverse().join('')}}<br/>
      <div v-bind:id="'seeyou-' + id"/>
    </h1>
data(){
    return {
      message : "Tiger",
      hello : "Hello Tiger",
      rawHtml : '<font color="red">张三</font>',
      displayDiv : 'block',
      flag: true,
      train: 'I am a student',
      id: 2
    }
  }

2.5、插值-指令

指令是带有 v- 前缀的特殊属性。

<h1>
      <p v-if="seen">今天是星期四,疯狂起来吧</p>
    </h1>
data(){
    return {
      message : "Tiger",
      hello : "Hello Tiger",
      rawHtml : '<font color="red">张三</font>',
      displayDiv : 'block',
      flag: true,
      train: 'I am a student',
      id: 2,
      seen : true
    }
  }
<h1>
      <ol>
        <li v-for="(course,index) in courses" :key="index">
          {{course.courceName}}
        </li>
      </ol>    
    </h1>
data(){
    return {
      message : "Tiger",
      hello : "Hello Tiger",
      rawHtml : '<font color="red">张三</font>',
      displayDiv : 'block',
      flag: true,
      train: 'I am a student',
      id: 2,
      seen : true,
      courses:[
        {courceName : 'Java'},
        {courceName : '爬虫'},
        {courceName : '大数据'}
      ]
    }
  }

2.6、插值-参数

参数在指令后以冒号指明。例如, v-bind 指令被用来响应地更新 HTML 属性

<h1>
      <a v-bind:href="url">百度</a>
    </h1>
data(){
    return {
      message : "Tiger",
      hello : "Hello Tiger",
      rawHtml : '<font color="red">百度科技</font>',
      displayDiv : 'block',
      flag: true,
      train: 'I am a student',
      id: 2,
      seen : true,
      courses:[
        {sourceName : '语文'},
        {sourceName : '数学'},
        {sourceName : '英语'}
      ],
      url: 'http://www.baidu.com'
    }
  }

2.7、用户输入

<h1>
      <p>{{ bindValue }}</p>
      <input v-model="bindValue">
    </h1>
data(){
    return {
      message : "Tiger",
      hello : "Hello Tiger",
      rawHtml : '<font color="red">华清远见</font>',
      displayDiv : 'block',
      flag: true,
      train: 'I am a student',
      id: 2,
      seen : true,
      courses:[
        {sourceName : '语文'},
        {sourceName : '数学'},
        {sourceName : '英语'}
      ],
      url: 'http://www.baidu.com',
      bindValue: 'you are me'
    }
  }

2.8、缩写

<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>
<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
<!-- 缩写 -->
<a @click="doSomething"></a>


目录
相关文章
|
7月前
|
JavaScript CDN
Vue3基本使用(基础部分)
Vue3基本使用(基础部分)
62 5
|
26天前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
24 1
vue学习第三章
|
26天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
31 1
vue学习第一章
|
26天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
35 1
vue学习第四章
|
26天前
|
JavaScript 前端开发
vue学习第五章
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,正向全栈进发。如果你从我的文章中受益,欢迎关注,我将持续分享更多优质内容。你的支持是我最大的动力!🎉🎉🎉
26 1
|
1月前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
51 3
|
JavaScript 前端开发
深入浅出Vue基本语法:让你快速上手Vue框架(一)
深入浅出Vue基本语法:让你快速上手Vue框架(一)
120 0
|
缓存 JavaScript 前端开发
一遍关于vue基础语法上篇
一遍关于vue基础语法上篇
74 0
|
JavaScript 前端开发 API
Vue.js入门指南:从基础到进阶,掌握现代JavaScript框架的核心概念与高级特性(2W字小白教程)
Vue.js入门指南:从基础到进阶,掌握现代JavaScript框架的核心概念与高级特性(2W字小白教程)
185 0
|
JavaScript 索引
Vue基础学习——基础语法2
Vue基础学习——基础语法2