vue组件化开发简单实例(下)

vue项目开发实战案例 假设我们要开发一个名为“在线书店”的 Web 应用,用户可以在这个应用中浏览书籍、添加到购物车、下单购买。这个实战案例涵盖了 Vue 项目开发的基本流程和功能实现。通过实践这个案例,你可以深入了解 Vue 的核心概念和用法,掌握如何使用 Vue CLI 创建和管理项目,以及如何使用 Vuex、Vue Router 等工具来增强应用的功能和交互性。 阅读详情
儿子访问父亲的值
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>vue事件监听练习</title>
</head>
<body>
    <div id="calc">
        <test></test>
    </div>
</body>
</html>
<script src="./js/vue.js"></script>

<template id="test">
    <div>
        <h6>子组件</h6>
        <subsubtest></subsubtest>
    </div>
</template>
<template id="subsubtest">
   <div>
        <h6>子子组件-即子组件的子组件</h6>
        <button @click="showfather">点击查看parent</button>
   </div>
</template>

<script>
    Vue.component('test',{
        template: '#test'
        ,data(){
            return {
                sonvalue: "我是子组件的内容,"
            }
        }
        //子组件里面使用子子组件
        ,components: {
            'subsubtest': {
                template: "#subsubtest"
                ,methods: {
                    showfather(){
                        //子子组件访问子组件
                        console.log(this.$parent.sonvalue)
                    }
                }
            }
        }
    })
    let app = new Vue({
        el: '#calc'
        ,data: {
        }
        ,methods:{
        }
        ,computed: {
        }
    })

</script>

运行结果如下:

在这里插入图片描述

从结果可以看到,其子子组件访问了子组件的data的sonvalue变量值。

Slot

插槽,意为扩展,扩充,定义组件的插槽。

在这里插入图片描述

组件中,插槽的基本使用:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>vue插槽</title>
</head>
<body>
    <div id="calc">
        <test>
            <button>按钮加到组件中</button>
        </test>
        <hr>
        <test></test>
    </div>
</body>
</html>
<script src="./js/vue.js"></script>
<template id="test">
    <div>
        <h6>子组件,插槽的使用</h6>
        <slot></slot>
    </div>
</template>
<script>
    Vue.component('test',{
        template: '#test'
        ,data(){
            return {
                sonvalue: "我是子组件的内容,"
            }
        }
    })
    let app = new Vue({
        el: '#calc'
        ,data: {
        }
        ,methods:{
        }
        ,computed: {
        }
    })

</script>

运行结果如下:

在这里插入图片描述

可以看到,第一个组件中,我们已经将按钮插入到插槽。但第二个没有。

插槽指定默认控件,代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>vue插槽</title>
</head>
<body>
    <div id="calc">
        <test>
            <button>按钮加到组件中</button>
        </test>
        <hr>
        <test>
            <!-- 不传插槽值,显示默认 -->
        </test>
        <hr>
        <test>
            <em>我是大大当前我发前</em>
        </test>
    </div>
</body>
</html>
<script src="./js/vue.js"></script>
<template id="test">
    <div>
        <h6>子组件,插槽的使用</h6>
        <slot>
            <!-- 这里放置默认,假设我们没有传button进来,那么将使用默认 -->
            <a href="www.erremall.top">默认链接</a>
        </slot>
    </div>
</template>
<script>
    Vue.component('test',{
        template: '#test'
        ,data(){
            return {
                sonvalue: "我是子组件的内容,"
            }
        }
    })
    let app = new Vue({
        el: '#calc'
        ,data: {
        }
        ,methods:{
        }
        ,computed: {
        }
    })

</script>

运行结果如下:

在这里插入图片描述

可以看到,如果我们没有往里面传值,那么将显示slot中默认的值。

具名插槽

​ 多个slot使用,这时需要指定slot的名字,代码实例如下:

​

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>vue插槽</title>
</head>
<body>
    <div id="calc">
        <test>
            <button slot="middle">我将显示在中间</button>
            <button slot="right">我将显示在中右边</button>
            <button slot="left">我将显示在左边</button>
        </test>
    </div>
</body>
</html>
<script src="./js/vue.js"></script>
<template id="test">
    <div>
        <h6>子组件具名的使用</h6>
        <slot name="left"></slot>
        <slot name="middle"></slot>
        <slot name="right"></slot>
    </div>
</template>
<script>
    Vue.component('test',{
        template: '#test'
        ,data(){
            return {
                sonvalue: "我是子组件的内容,"
            }
        }
    })
    let app = new Vue({
        el: '#calc'
        ,data: {
        }
        ,methods:{
        }
        ,computed: {
        }
    })

</script>

运行结果:
在这里插入图片描述


父访问子组件的数据[引用具名插槽数据]:

实例代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>vue插槽</title>
</head>
<body>
    <div id="calc">
        <test></test>
        <test>
            <!-- slot-scope随便起名字 -->
            <template slot-scope="slots">
                <span v-for="(item,index) in slots.data">{{item}}*</span>  
            </template>
        </test>
    </div>
</body>
</html>
<script src="./js/vue.js"></script>
<template id="test">
    <div>
        <h6>父组件引用子组件的值,采用_分割形式来连接[下面的 :data是关键]</h6>
        <slot :data="items">
            <ul>
                <li v-for="(item,index) in items">{{item}}</li>  
            </ul>
        </slot>
    </div>
</template>
<script>
    Vue.component('test',{
        template: '#test'
        ,data(){
            return {
                sonvalue: "我是子组件的内容,"
                ,items: ["A","B","C","D","E","G"]
            }
        }
    })
    let app = new Vue({
        el: '#calc'
        ,data: {
        }
        ,methods:{
        }
        ,computed: {
        }
    })

</script>

运行结果如下:

在这里插入图片描述

从结果可以看出,在组件template模板中,我们定义一个slot的属性:data[data可以自己随便起名字],这个变量,这个属性把items值复制。然后父组件在调用cpn组件时,我们进行使用template模板,然后可以使用template名称.自定义属性[data]来获取slot绑定的属性。

CommomJs

​ 主要是模块化的思想,其中包含 导入和导出

ES5语法:

​ 导入:

​

var {a,b} = require('./a.')	

​ 导出

module.exports = {

					a: 1

					,b:2	

			}
ES6语法:

​ 只需要在如下类型里面写代码,就可以申明为module:

<script type="module">
		实例a = 100
	export{
    	变量a:实例a
	}
</script>

​ 导入(import):

import {变量a,变量b,...} from 'a.js';

​ 导出(export):

export{
	变量a: 实例a
	,变量b: 实例b
}

实例:

新建exportPractice.js文件,代码如下:

class Person  {
year =20;

print(){
    console.log("我是豆豆")
}

}
//导出Person这个类
export { Person};

建立导入类import.js类,代码如下:

    //导入
    import {Person} from './exportPractice.js';
    //打印
    let p = new Person();
    console.log(p.print())

建立测试类printHTML.html,代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>export和import</title>
</head>
<body>
    <div id="calc">
        
    </div>
</body>
</html>
<script type="module" src="./import.js"></script>

运行printHTML.html,运行结果如下:

在这里插入图片描述

可以看到,在import中,成功导入了export的person类,

Vue.js的优势及编程示例 Vue.js是一种流行的JavaScript框架,被广泛用于构建现代化的单页应用程序(SPA)和交互式用户界面。在本文中,我将详细介绍Vue.js的一些优势,并提供相应的编程示例。综上所述,Vue.js具有简单易用、响应式数据绑定、组件化开发和丰富的生态系统等优势。在你的HTML文件中添加上述代码片段后,就可以使用Vue.js来构建交互式的Web应用程序了。在上面的示例中,我们创建了一个Vue实例,并将其绑定到HTML中的一个元素上。通过使用双花括号语法,我们可以将Vue实例中的数据动态地显示在页面上。 阅读详情

相关推荐

100个Python代码大全:学完这篇从Python小白到架构师

Python是一种广泛使用的高级编程语言,以其简洁优雅、易于学习和强大的库而闻名。无论你是一位经验丰富的程序员还是初学者,都可以从这种语言的丰富资源中受益。在本篇博客中,我将分享100个实用的Python代码示例,旨在帮助你掌握Python编程,并在日常工作中提高效率。

penggerhe的博客 1万+

Vue开发实战(03)-组件化开发

对组件功能的封装,可以像搭积木一样开发网页。 Vue官方的示例图对组件化开发的形象展示。左边是一个网页,可以按照功能模块抽象成很多组件,这些组件就像积木一样拼接成网页。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aS7Zk8tp-1686298456553)(null)] 1 什么是组件化开发 1.1 浏览器封装好的组件 在页面的源码里写出的button标签,会在前端页面中显示如下样式: 这button就是个组件,这样前端页面在显示上会加上边框和鼠标悬停样式,还可使用c

JavaEdge全是干货的技术号 3845

ESP-Mesh-Lite vs ESP-Mesh:如何选择适合你的物联网组网方案?

本文深入对比了乐鑫ESP-Mesh-Lite与ESP-Mesh两种物联网组网方案的核心差异。重点解析了ESP-Mesh-Lite分布式协议栈架构的优势,即每个节点拥有独立IP,可直接访问外部网络,极大简化了应用层开发。文章从网络架构、性能、开发体验及适用场景等多维度进行分析,为开发者根据项目需求(如分布式数据采集、智能家居或集中控制网络)选择最合适的方案提供了清晰的决策框架。

pluto的博客 815

VueJS 组件 基础及其例子

VueJS 组件 基础及其例子

种麦南山下的博客 447

aruco_ros实战:从USB摄像头到Marker位姿检测全流程解析

本文详细解析了使用aruco_ros从USB摄像头实现ArUco Marker检测与位姿估计的全流程。内容涵盖环境搭建、核心launch文件配置、可视化调试、位姿数据解析以及深度优化技巧,帮助开发者快速掌握ROS下的视觉定位关键技术,并集成到机器人项目中。

weixin_29230805的博客 265

【SLAM】探索explore_lite在移动机器人自主建图中的高效边界检测策略

本文深入解析了explore_lite在移动机器人自主建图中的应用,重点探讨了其高效的贪婪边界检测策略。该工具包专为资源受限平台设计,通过直接利用SLAM生成的地图信息,以极低的计算开销实现快速、稳定的未知区域探索,并与move_base导航框架无缝协作,是轻量级机器人自主探索的优选方案。

purple的博客 1066

Vue.js组件开发实战指南

组件通信方式 父子组件之间的通信就像人际交往一样,既要会说(发送数据)也要会听(接收数据)。组件复用与混入 当多个组件有相同的功能时,我们可以通过混入(mixin)来复用代码。组件是Vue框架中最核心的特性,它允许我们把页面拆分成独立可复用的小块。插槽使用 插槽让组件变得更加灵活,就像是给组件预留了一些"空位",可以根据需要填入不同的内容。组件测试 给组件写测试就像给产品做质检,可以保证组件在各种情况下都能正常工作。组件性能优化 优化组件性能就像给汽车做保养,定期的维护可以让它跑得更快更稳。

2401_88888297的博客 980

2025.03.14【读书笔记】|GWAS分析神器:BOLT-LMM工具介绍与快速安装

在生物信息学领域,全基因组关联分析(GWAS)已成为揭示遗传与疾病关系的强有力工具。BOLT-LMM作为一款专为大规模样本量设计的GWAS分析工具,将极大地提高研究人员的工作效率。大家好,今天我们来聊聊一个非常强大的生物信息学工具——BOLT-LMM。它是基于线性混合模型(LMM)的全基因组关联分析(GWAS)分析工具,通过快速的方差近似方法在计算效率上实现了显著的提升。BOLT-LMM的高效性能使其成为大规模样本GWAS分析的理想选择,它将进一步推动生物信息学和遗传学研究的发展。

1093

Vue开发系列——自定义组件开发

注意: 通过props在父组件和子组件之间传递数据.实际上用于父组件给子组件传递数据。<el-dialog title="成绩分析" :visible.sync="dialogVisibleForEcharts" fullscreen>"></div>//子组件定义位置},data() {return {...此时省略内容注意:在子组件中,你可以使用$emit触发事件,并在父组件中监听这些事件。1、 子组件可以继续组合形成更大的子组件来使用。

我的E家 1329

紫光展锐面试——FPGA/IC设计面试面经案例总结

自我介绍;研究生的主要研究方向是什么?为什么想要应聘数字芯片相关的工作?简单介绍下数字IC设计流程。逻辑综合主要做什么?你有实际做过逻辑综合工作吗?你了解SS corner和FF corner吗?综合时应该使用哪个corner?综合时需要考虑hold吗?为什么?提高时钟频率对setup和hold有什么影响?为什么?hvt、rvt/svt、lvt有什么区别?c40、c50是指什么概念?有什么区别?你对EDA工具有过了解吗?

FPGA/MATLAB学习教程/源码/项目合作开发 1561

ESP32网络开发实例-开发环境搭建

NodeMCU-ESP-32S开发环境搭建 NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340。WiFi 蓝牙ESP-32 可用Arduino IDE ESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。 此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低

视觉与物联智能 3781

vue组件化开发简单实例(上)

Vue组件化的实现和使用步骤 注册组件的基本步骤 创建组件构造器 注册组件 使用组件 具体实现[最基础的使用]: <!doctype html> <html> <head> <meta charset="utf-8"> <title>vue事件监听练习</title> </head> <script src="./js/vue.js"></script> <body>

Sobered的博客 1601

核心组件大换血:Backbone与Neck魔改篇:YOLO26结合StarNet结构:2026星状网络在YOLO生态的即插即用实战

本文将介绍如何将StarNet作为Backbone替换YOLO26原生架构,以提升边缘设备上的目标检测性能。文章首先分析了YOLO26在特定场景下的精度瓶颈,指出其通用Backbone设计存在不足。随后深入解析StarNet的核心创新——星操作(Star Operation),这一低维计算却能获得高维特征表达的数学魔术,以及其极简的StarBlock模块设计。通过对比YOLO26原生架构的三大创新与痛点,作者提出两种替换策略:完整替换Backbone或局部替换+Neck联调。文中提供了StarNet核心代码

ZDQ58818的博客 288

Vue基础入门(vue组件化的使用和vue-cli组件化的使用)

vue组件化的使用和vue-cli组件化的使用效果展示不使用用组件化使用组件使用vue-cli 效果展示 输入数字后点击提交自动生成一列显示输入内容,点击该列该列消失 不使用用组件化 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src=vue.js></

weixin_44011306的博客 518

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Vue 的组件化开发到底是干什么的?

想象一下,你正在玩乐高积木。每个乐高块都有自己的形状和功能,你可以用这些块构建出各种不同的东西。在 Vue 中,组件化开发就像是用乐高积木搭建东西一样。Vue 组件是可复用的 UI 构建块,它们可以帮助我们将复杂的界面拆分成更小、更易于管理的部分。每个组件都有自己的逻辑、样式和视图。复用性:一旦创建了组件,就可以在多个地方重复使用。模块化:将页面的不同部分分离成独立的组件,使代码更加清晰和易于维护。封装性:每个组件都可以有自己的数据和方法,不会影响其他组件。

长风破浪会有时的博客 1055

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Vue一课一得

在上面的代码中,我们创建了一个Vue实例,并指定el选项为"#app",这意味着Vue实例将控制id为"app"的div元素。首先,我们需要在Vue实例的data属性中定义一个计数器变量,然后在watch属性中创建一个监听器来监视这个计数器变量的变化。在上面的代码中,我们在data选项中定义了一个名为"message"的属性,并将其初始值设置为"Hello, Vue!computed属性是Vue.js中的一个重要概念,它允许我们根据数据的变化自动计算出新的值,并将其缓存起来,以便在需要时进行使用。

Z18177251300的博客 2141

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

vue的组件化编程的详细讲解加代码演示

本章讲解了vue的组件化编程的具体分析以及组件化编程的各个模式加代码分析和小结😁vue系列扩展篇⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣ -Vue2 脚手架下载及配置淘宝镜像–和ieda的配置和打开扩展篇⁣⁣⁣⁣ -Vue 项目结构和文件分析第1篇⁣⁣⁣⁣  -Vue的下载以及MVVM分析第2篇⁣⁣⁣⁣  -vue数据单双渲染以及代码讲解第3篇⁣⁣⁣⁣  -vue的事件绑定和修饰符第4篇⁣⁣⁣⁣  -vue的条件渲染以及列表渲染的总结归纳加代码演示第5篇⁣⁣⁣⁣  - 是本篇

业精于勤,荒于嬉 1731

一、Vue初识和简单应用

一、Vue简介 1-1.官网 英文官网: https://vuejs.org/ 中文官网: https://cn.vuejs.org/ 1-2.Vue发展历程 1-3. 描述 动态构建用户界面的渐进式 JavaScript 框架 ,作者是尤雨溪 二、Vue 的特点 1. 遵循 MVVM 模式 2. 编码简洁, 体积小, 运行效率高, 适合移动/PC 端开发 3. 它本身只关注 UI, 也可以引入其它第三方库开发项目 4. 采用组件化模式,提高代码复用率、且让代码更好维护 5. 声明式编码,让编码人员无

weixin_46724415的博客 678

vue list添加元素_Vue简单入门及组件的简单使用

1.第一个Vue程序注意Vue的版本,不同版本的语法可能不同.html><html><head><title>VUE第一个实例title>head><body><divid="app">{{msg}}<div><inputtype="...

weixin_39964528的博客 5948

【Vue学习】Vue-cli3构建项目之TodoList效果vue组件化实现

我这里用到是Vue-cli3来构建项目。components文件夹用来存放vue组件,新建的vue组件 todolist.vue文件就是放在这里,根目录下的App.vue是根组件。 App.vue <template> <div id="app" > <h1>TodoList</h1> <todolist></...

没有感情的代码机器的博客 441

Vue3 简介及入门实例

Vue 3 入门笔记

村雨遥 2019

【Vue简介+搭建Vue开发环境+Hello小案例】

Vue简介、搭建Vue开发环境、Hello小案例

小王的博客 168

【vue - demo】实例 - todoList

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-U...

充电五分钟... 438

Vue3版本开发toast插件

Vue3的Toast插件是一种消息提示组件,主要用于消息通知、加载提示、操作结果提示等醒目提示效果。Toast组件几乎是没有个组件库必备的组件,通过Toast组件开发可以比较全面的学习Vuejs的相关技能点。在src目录下新建文件夹plugins,在plugins中新建文件夹my-toast,然后在这个文件夹里新建一个mytoast.vue和一个index.ts。到现在就是可以打印出虚拟节点vm的内容看一下,就是。这就是调用了onClose方法。三秒后会消失,并且控制台打印。

正在解锁骑着骆驼去南极的世界 1810

Vue简单介绍

Vue是一套用于构建用户界面的渐进式JavaScript框架采用组件化模式,提高代码复用率的同时让代码更好维护组件化声明式编程,让编程人员无需直接操作DOM,提高开发效率使用虚拟DOM+优秀的DIFF算法,尽量复用DOM节点虚拟DOMDIFF算法Diff算法是一种对比算法。对比两者是旧虚拟DOM和新虚拟DOM,对比出哪个虚拟节点更改了,找出这个虚拟节点,并只更新这个虚拟节点所对应的真实节点,而不用更新其它数据没发生变化的节点,实现精准地更新真实DOM,进而提高效率。diff算法的本质是找出两个对象之间的差异

君啊君,莫等华发踏月行 543

利用Vue方法实现一个简单的购物车

标题 效果如上:   代码如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;link rel="stylesheet" type="text/css" href="css/bootstrap.css"/&gt;

this_name_true的博客 394
上一篇: vue组件化开发简单实例(上)
下一篇: vue webpack的基本使用
码农藏经阁
博客等级 码龄8年 47粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值