首页 > 其他分享 >vue3 学习-初识体验-组件 component

vue3 学习-初识体验-组件 component

时间:2022-08-24 00:00:50浏览次数:51  
标签:index app component content item 初识 vue3 组件 todo

组件可以简单理解为 "页面构成的一部分". 组件化是 Vue 最为重要的设计理念之一吧.

早期的前端页面基本上就拆分为一个个的html, css, js 文件, 然后不断"堆砌", 一套 js库走天下. 其特点就是随着页面越来越复杂, 其维护就成了一个大的问题. 后面前端不知咋地, 开始模仿后端设计了, 也出现了所谓的模块化, 组件化, 框架等等. 美其名曰前端工程. 确实是工程化了, 但也更复杂了. 以前前端的主要职责是写页面展示数据. 现在是卷全栈了.

从我个人体验来说, vue 这种组件化和单文件 (模板, 样式, 逻辑 都在一个文件中) 的方式是非常符合咱编程逻辑的, 我也是因为此写前端写出了后端逻辑的感觉, 但还是非常爽的哦.

<!DOCTYPE html>
<html lang="en">
<head>
  <title>组件体验</title>
  <script src="https://unpkg.com/vue@3"></script>
</head>
<body>
  <div id="root"></div>
  <script>
    const app = Vue.createApp({
      data () {
        return { 
          inputValue: '',
          list: [] 
        }
      },
      methods: {
        addItem () {
          this.list.push(this.inputValue)
          this.inputValue = ''
        }
      },
      template: `
      <div>
        <input v-model="inputValue" />
        <button @click="addItem">增加</button>
        <ul>
          <todo-item 
            v-for="(item, index) of list"
            v-bind:content=item
            v-bind:index="index"
          />
        </ul>
      </div>
        `
    })

    // 注册全局子组件 todo-item, 其作用就是展示 li 的数据
    // 父组件将数据通过绑定属性 content, index 的方式给子组件来传值
    // 子组件 todo-item 通过 props 来接收 content, index 并进行应用
    app.component('todo-item', {
      props: ['content', 'index'],
      template: `<li>{{index}}-{{content}}</li>`
    })
    
    app.mount('#root')
  </script>
</body>
</html>

可以看出 vue 的组件化从形式上看即 "自定义html标签" , 这里主要是理解组件的逻辑和传值很关键.

先分析一下这一段:

<ul>
    <todo-item 
               v-for="(item, index) of list"
               v-bind:content=item
               v-bind:index="index"
     />
 </ul>

在 ul 标签中引入了一个组件叫 todo-item, 然后主流程将 data 通过绑定两个属性 content 和 index 传递给了 组件 todo-item.

再分析这一段:

app.component('todo-item', {
      props: ['content', 'index'],
      template: `<li>{{index}}-{{content}}</li>`
    })

首先是将 todo-item 组件全局注册给了 app实例. 然后通过 props 属性来接收父组件通过属性传递过来的数据 content 和 index, 并将其应用到 todo-item 的逻辑中.

最后连成一体就渲染出来了. 这个组件一开始还是不太能理解的, 多用几次熟练就掌握了.

标签:index,app,component,content,item,初识,vue3,组件,todo
From: https://www.cnblogs.com/chenjieyouge/p/16618320.html

相关文章

  • VUE3.0+Antdv+Asp.net WebApi开发学生信息管理系统(四)
    在B/S系统开发中,前后端分离开发设计已成为一种标准,而VUE作为前端三大主流框架之一,越来越受到大家的青睐,Antdv是Antd在Vue中的实现。本系列文章主要通过Antdv和Asp.netWebA......
  • React报错之React hook 'useState' cannot be called in a class component
    正文从这开始~总览当我们尝试在类组件中使用useState钩子时,会产生"Reacthook'useState'cannotbecalledinaclasscomponent"错误。为了解决该错误,请将类组件转换......
  • Vue3.2 setup语法糖中组件的 name 属性如何定义
    方案一:增加一个脚本标签<scriptlang="ts">exportdefault{name:'Layout'}</script>方案二:使用插件unplugin-vue-define-options 方案三:(推荐)使用插件vit......
  • Vue3插槽
    一、前言插槽其实就是子组件提供给父组件的占位符。子组件定义好插槽后,父组件可以替换插槽内容。子组件不提供插槽时,父组件填充失效父组件无填充时,会使用插槽默认内容......
  • vue3支付后不允许跳转回预付订单页
    场景:在电商项目中,订单页通常是用来展示给用户看的,当支付完成后,就不允许回退回来,防止二次支付以及商品信息错乱曾使用:router.push(`/member/pay?orderId=${res.data.resul......
  • vue3 单文件组件——父组件访问子组件的实例
    如果一个子组件使用的是选项式API 或没有使用 <scriptsetup>,被引用的组件实例和该子组件的 this 完全一致,这意味着父组件对子组件的每一个属性和方法都有完全的访问......
  • vue3源码学习
    建议先通过官方指南了解3.0都干了啥、解决了什么问题。然后才是阅读其源码(通过利器),进阶了解它是如何实现的。https://juejin.cn/post/6925668019884523534......
  • vue3新内置组件teleport传送门
    使用到的原因:在使用固定定位弹出弹出框的时候,突然遇到位置不正确,而且在有index高级别的情况下依旧位置出错表现如下:出现原因:我的代码出现的tf元素,导致定位祖先元素发......
  • 初识ListView
    BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字~SimpleAdapter:同......
  • Vue3中插槽(slot)用法汇总
    Vue中的插槽相信使用过Vue的小伙伴或多或少的都用过,但是你是否了解它全部用法呢?本篇文章就为大家带来Vue3中插槽的全部用法来帮助大家查漏补缺。什么是插槽简单来说就是......