专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

vue组件怎么写,vue组件介绍

来源:小嗨整编  作者:小嗨  发布时间:2023-02-28 04:34
摘要:vue组件怎么写,vue组件介绍一、组件化思想如果我们将一个页面中所有的处理逻辑全部放在一起,处理起来就会变得非常复杂,而且不利于后续的管理以及扩展。但我们将一个页面拆分成一个个小的功能块,每个功能块完成属于自己这部分独立的功能,那么之后整...

vue组件怎么写,vue组件介绍

五、组件中的data

组件可以有自己的data数据

组件中的data必须是一个方法,这样方法内部还必须返回一个对象才行

组件中的data数据使用方式和实例中的data使用方式完全一样

vue组件怎么写,vue组件介绍

六、模板的分离写法

vue提供了两种方案来定义HTML模块内容:

  • 使用<script>标签

  • 使用<template>标签

// 方式一<template id="tmp">   <div>     <h1>212</h1>     <h2>{{msg}}</h2> // 无法访问data中的msg,会报错</div></template>// 方式二<script type="text/x-template" id="tmp">  <div>    <h1>212</h1>    <h2>{{msg}}</h2>// 无法访问data中的msg,会报错  </div></script><script>   var vm = new Vue({     el: "#app",     data: {       msg: "小七",     },     components:{       'my-com':{         template:'#tmp'       }     }   });</script>

七、组件内部可以访问Vue实例数据吗?

答案:不能,Vue组件应该有自己保存数据的地方。

组件是一个单独功能模块的封装,这个模块有属于自己的HTML模板,也应该有属于自己的数据data

组件中的数据是保存在哪里呢?顶层的Vue实例中吗?

  • 组件对象也有一个data属性

  • 只是这个data属性必须是一个函数

  • 这个函数返回一个对象,对象内部保存着数据

八、为什么组件data必须是函数

  • 根实例对象data可以是对象也可以是函数(根实例是单例),不会产生数据污染情况

  • 组件实例对象data必须为函数,目的是为了防止多个组件实例对象之间共用一个data,产生数据污染

  • 对象为引用关系,当复用组件时,由于数据对象都指向同一个data对象,当在一个组件中修改data时,其他重用的组件中的data会同时被修改,但是使用返回的对象的函数,由于每次返回的都是一个新对象,保障了引用地址不同,则不会出现修改同一个数据的问题

  • js只有函数构成作用域(注意理解作用域,只有函数的{}构成作用域,对象的{}以及if(){}够不构成作用域),data是一个函数时,每个组件实例都有自己的作用域,每个实例相互独立,不会相互影响

<body>    <div id="app">      <!-- counter是独立的,互不影响 -->      <cpn></cpn>      <!-- counter独立的 -->      <cpn></cpn>    </div>    <template id="tmp">      <div>        <p>{{counter}}</p>        <button @click="counter++">+</button>        <button @click="counter--">-</button>      </div>    </template>  </body>  <script>    Vue.component("cpn", {      template: "#tmp",      data() {        return {          counter: 0,        }      },    })    var vm = new Vue({      el: "#app",      data: {},    })</script>

九、父子组件通信

子组件是不能直接访问父组件或者Vue实例数据的。那么如何把父组件的数据传递给子组件?通过props向子组件传递数据,首先说下props基本用法:

在子组件中,使用选项props来声明需要从父级接收到的数据。

1、props的值有两种方式:

方式一:字符串数组,数组中的字符串就是传递时的名称。

方式二:对象,对象可以设置传递时的类型,也可以设置默认值等。

<body><div id="app"><!-- message父组件data中的数据,msg传给子组件的属性,子组件需要使用msg来接收 -->  <cpn :msg="message"></cpn></div><template id="tmp">  <div>   <p>{{counter}}</p>   <p>{{msg}}</p>   </div></template></body><script>var vm = new Vue({  el: "#app",  data: {    message: "父组件的数据",  },  components: {    cpn: {      template: "#tmp",      props: ["msg"],      data() {        return {          counter: 0,        }      },    },  },})</script>

2、props属性名规则
  • 在props中使用驼峰形式,模板中需要使用短横线的形式

  • 字符串形式的模板中没有这个限制

<menu-item :menu-title="msg"></menu-item> Vue.component("menu-item", {   props: ["menuTitle"],   template: "<h3>{{menuTitle}}</h3>"  });

3、props属性值类型

字符串、数值、布尔值、数组、对象

vue组件怎么写,vue组件介绍

*父组件向子组件传递数据的方法如下:
  • 通过props


本文地址:软件教程频道 https://www.eeeoo.cn/ruanjian/903499_2.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!


软件教程
小编:小嗨整编
相关文章相关阅读
  • ios17锁屏小组件怎么设置(ios17锁屏时间字体大小怎么设置)?

    ios17锁屏小组件怎么设置(ios17锁屏时间字体大小怎么设置)?

    ios17锁屏小组件怎么设置(ios17锁屏时间字体大小怎么设置)?ios17可以根据自己的偏好调节锁屏壁纸上时间大小字体的粗细。同时,实况动态照片壁纸也重新回归,为你的锁屏增添活力。下面带来ios17锁屏小组件设置及锁屏时间字体大小设置。...

  • 如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发随着移动互联网的迅猛发展,移动端应用的开发变得越来越重要。Vue.js作为一款轻量级、高性能的前端框架,被广泛应用于移动端开发中。本文将介绍如何使用Vue技术进行移动端开发,并给出具体的代码示例。一、准备工作...

  • 浅析Vue项目中怎么用Pinia状态管理工具

    浅析Vue项目中怎么用Pinia状态管理工具

    vue项目中怎么用pinia状态管理工具?下面本篇文章带大家聊聊vue项目中pinia状态管理工具的使用,希望对大家有所帮助!Pinia官网介绍说:Pinia是Vue的存储库,它允许您跨组件/页面共享状态。Vuex同样可以作为状态管理...

  • mpvue是什么

    mpvue是什么

    微信小程序推荐简洁的开发方式,通过多页面聚合完成轻量的产品功能。小程序以离线包方式下载到本地,通过微信客户端载入和启动,开发规范简洁,技术封装彻底,自成开发体系,有native和h5的影子,但又绝不雷同。mpvue是什么?mpvue...

  • 如何在Vue项目中使用路由实现页面刷新和缓存控制?

    如何在Vue项目中使用路由实现页面刷新和缓存控制?

    如何在vue项目中使用路由实现页面刷新和缓存控制?在Vue项目开发中,使用路由实现页面刷新和缓存控制是非常常见的需求。本文将介绍如何在Vue项目中使用路由来实现页面刷新和缓存控制,并给出相应的代码示例。路由配置首先,在Vue项目中需要使用v...

  • Vue-cli脚手架工具使用及项目配置说明

    Vue-cli脚手架工具使用及项目配置说明

    vue-cli脚手架工具使用及项目配置说明随着前端技术的不断发展,前端框架也越来越受到开发者的关注。Vue.js作为前端框架的佼佼者,已经被广泛应用于各种Web应用的开发中。Vue-cli是Vue.js官方提供的一个基于命令行的脚...

  • Vue中Mixin的使用方法和注意点介绍

    Vue中Mixin的使用方法和注意点介绍

    vue.js是当今web开发中最受欢迎的前端框架之一。它为构建大型、灵活和高效的web应用程序提供了一流的开发体验。vue.js的特性之一就是它支持mixin,一个很有用的概念,它允许我们在不同的组件中共享一些公共代码。本文将介绍Vue中M...

  • vue的跨域是什么意思

    vue的跨域是什么意思

    在vue中,跨域是指浏览器不能执行其他网站的脚本;它是浏览器同源策略造成的,是浏览器对js实施的安全限制。跨域本质是浏览器基于同源策略的一种安全手段;而同源策略是一种约定,它是浏览器最核心也最基本的安全功能。vue跨域的解决方法:1、jso...

  • 周排行
  • 月排行
  • 年排行

精彩推荐