【7】从零开始学Vue3

本文详细介绍了从零开始学习Vue3的全过程,包括项目结构、模板语法、条件渲染、列表渲染、事件处理、表单输入绑定、组件基础、Props组件交互、自定义事件组件交互、兄弟组件间通信、组件生命周期以及Vue3中引入第三方库的方法。教程通过实例演示,深入浅出地解析了Vue3的关键特性。
摘要由CSDN通过智能技术生成

1、项目结构:

asserts用来存放静态资源的(一些图片,公共的css文件等)

components用来存放vue的组件(vue是组件开发)

 

App.vue是主入口组件 (根组件,所有组件都是从这里开始,从这里显示的)

 

main.js是主入口文件,(所有程序入口)

 

template可以理解是写html的

script可以理解为是写业务逻辑的

 

2、模板语法

目的:为了让标签里显示的数据从静态变为动态

语法:双花括号{ {}}

步骤:

(1)写一个data函数(用来返回数据)


<script>
export default {
  name: 'HelloWorld',
  data(){
    return {
      message:"测试"
    }
  }
}
</script>

(2)用花括号引入数据

<template>
  <div class="hello">

    <h3>学习vue模板语法</h3>
    <p>{
  {message}}</p>

  </div>
</template>

结果

目的:为了识别标签里的链接

语法:在标签括号里加v-html 

其实就是超链接的做法 以下对比普通的和v-html属性的标签

<template>
  <div class="hello">

    <p>{
  {message}}</p>
    <div>{
  {rawHtml}}</div>
    <div v-html="rawHtml"></div>


  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data(){
    return {
      message:"测试",
      rawHtml:"<a href='http://www.itbaizhan.com'>百战</a>"
    }
  }
}

结果

目的:让标签里的属性也动态化

语法:在标签括号里加v-bind

 <div v-bind:id="dynamicId"></div>
    //v-bind:可以简写为一个冒号“:”
 <div :id="dynamicId"></div> 
export default {
  name: 'HelloWorld',
  data(){
    return {
      dynamicId:10001
    }
  }
}

Vue.js也支持JavaScript表达式支持

结果

 注意只支持表达式,不支持语句和流程空值(如赋值语句和if语句都不会生效)

3、条件渲染

目的:用于条件性地渲染一块内容。这块内容只会在指令的表达式返回true值的时候被渲染。

 语法:v-if=""

比如用来标记某个物品是否为新增的状态或者控制父级容器的显示和隐藏

export default {
  name: 'HelloWorld',
  data(){
    return {

      message:"测试",
      rawHtml:"<a href='http://www.itbaizhan.com'>百战</a>",
      dynamicId:10001,
      num:10,
      flag:true
    }
  }
}

结果:

 目的:与v-if组合成一个逻辑的要么这样要么那样

语法:v-else

 只能控制一个的显示的

v-show 

v-if与v-show的区别(前者是删除,后者是隐藏)

4、列表渲染

目的:把一个数组映射为一组元素

语法:v-for="item in items" (items指的是定义的数组名称,item为数组的每一个元素)

步骤:

 (1)创建一个数组(数组用方括号创建)

 newsList:[
          {
            id:1001,
            title:"今日新闻1"
          },
          {
            id:1002,
            title:"今日新闻2"
          },
          {
            id:1003,
            title:"今日新闻3"
          }
        ]

 (2)以ul加li标签的形式显示在页面上

报错:

 解决:在后面加 :key=“item.id”

(106条消息) Elements in iteration expect to have ‘v-bind:key‘ directives.‘_DaftJayee的博客-CSDN博客_v-bind:key' directives

<template>
  <div class="hello">
    <ul>
      <li v-for="item in newsList
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白开水为啥没味

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值