初识node.js(使用)

文章目录

    • 项目目录介绍和运行流程
      • 1.index.html👇
      • 2.整个项目的核心入口文件其实是`main.js`
      • 3.App.vue
    • 组件化开发 和 根组件
    • 普通组件的注册
      • 1.局部注册
      • 2.全局注册
    • 综合案例

项目目录介绍和运行流程

在这里插入图片描述

1.index.html👇

<!DOCTYPE html>
<html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title><%= htmlWebpackPlugin.options.title %></title></head><body><!-- 兼容:给不支持js的浏览器一个提示 --><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><!-- Vue所管理的容器:将来创建结构动态渲染这个容器 --><div id="app"><!-- 工程化开发模式中:这里不在直接编写模板语法 ,而是通过App.vue 提供结构渲染--></div><!-- built files will be auto injected --></body>
</html>

Ctrl + `是切换终端
在这里插入图片描述

打开终端,在里面执行yarn serve,运行项目,然后通过浏览器打开
在这里插入图片描述
在这里插入图片描述

2.整个项目的核心入口文件其实是main.js

//文件核心作用:导入App.vue,基于App.vue创建结构渲染index.html
//1.导入 Vue 核心包
import Vue from 'vue'
//2.导入 App.vue 根组件
import App from './App.vue'console.log(123)//提示:当前处于什么环境(生产环境/开发环境)
Vue.config.productionTip = false//3.Vue实例化,提供render方法 → 基于App.vue创建结构渲染index.html
new Vue({//如果要管理index中的app容器,就像下面这么写el:'#app',//这个 el 和下面的 .$mount('选择器') 作用完全一样,用于指定Vue所管理的容器//render: h => h(App),   //基于App.vue创建结构//这里的 render 写法其实是一个简写//可以写一个完整写法(如下)render: (createElement) => {// 基于App创建元素结构,但创建了结构并没有返回,所以它得不到你创建的结果,//所以前面要加一个returnreturn createElement(App)}//提问:完整写法和之前的有什么不一样?//答:creatElement是形参,它可以改成别的,比如一个h
}).$mount('#app')

3.App.vue

<!-- 本质上就是在基于App.vue来创建结构,最终渲染index.html里面的id=App的盒子 -->
<template><div id="app"><img alt="Vue logo" src="./assets/logo.png"><img alt="Vue logo" src="./assets/logo.png"><HelloWorld msg="Welcome to Your Vue.js App"/></div>
</template><script>
import HelloWorld from './components/HelloWorld.vue'export default {name: 'App',components: {HelloWorld}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

在这里插入图片描述

组件化开发 和 根组件

在这里插入图片描述
在这里插入图片描述

<!-- 结构 -->
<template><div class="App"><div class="box" @click="fn"></div></div>
</template><!-- 逻辑 -->
<script>
//export是导出:导出的是当前组件的配置项
//里面可以提供:data(特殊),methods,computed,watch,生命周期export default{created (){console.log('我是你')},methods:{fn (){alert('你好')}}}
</script><!-- 样式 -->
<style>
.App{width: 400px;height: 400px;background-color: pink;
}
.box{width: 100px;height: 100px;background-color: skyblue;
}
</style>

普通组件的注册

普通组件的注册使用

组件注册的两种方式
1.局部注册:只能在注册的组件内使用(联想局部变量)
①:创建.vue文件(三个组成部分)
②:在使用的组件内部导入并注册
2.全局注册:所有组件内都能使用(联想全局变量)

1.局部注册

①:创建.vue文件(三个组成部分)

往哪创建?
往components中创建,要几个就创建几个,每一个都有三个所对应的组成部分:结构,样式,行为
在这里插入图片描述

②:在使用的组件内部导入并注册

App.vue内进行导入
在这里插入图片描述
使用

  • 当成html标签使用<组件名></组件名>

注意:

  • 组件名规范 → 大驼峰命名法,如:HmHeader

举例如下图👇
在这里插入图片描述

组件内容包含三部分👇
在这里插入图片描述

在App.vue中使用组件方法实例如下代码👇

<template><div class="App"><!-- 头部组件 --><ZxyHeader></ZxyHeader> <!-- 主题组件 --><ZxyMain></ZxyMain><!-- 底部组件 --><ZxyFooter></ZxyFooter></div>
</template><script>
import ZxyHeader from './components/ZxyHeader.vue'
import ZxyMain from './components/ZxyMain.vue'
import ZxyFooter from './components/ZxyFooter.vue'
export default{//写一个配置项,在对象里面去进行当前组件的注册components:{//'组件名':组件对象ZxyHeader:ZxyHeader,//这样注册好之后,就可以把它当成组件,在上面的template中使用了ZxyMain:ZxyMain,//后面的这两个不用像前面一样,只要写前一半就可以了ZxyFooter}
}
</script><style>.App{width: 600px;height: 700px;background-color: skyblue;margin: 0 auto;padding: 20px;}
</style>

2.全局注册

①:创建.vue文件(三个组成部分)
②:main.js中进行全局注册

比如通用按钮在这里插入图片描述
1.全局注册的语法是Vue.component('组件名',组件对象),使用和注意事项和局部注册一样(组件名就是给你要在这里用的组件起个名字,组件对象就是你在component中给组件起的名字)
2.像这样注册好之后👉在这里插入图片描述
如果你想要用它,就可以把它用到之前写好的局部组件中,比如要给局部组件加上这个button在这里插入图片描述
在这里插入图片描述
小tip:用 cursor:pointer 可以把按钮上的三角鼠标变成一个小手

全部代码如下:

ZxyButton.vue👇

<template><button class="zxy-button">zxy的通用按钮</button>
</template><script>
export default{}</script><style>
.zxy-button{height: 50px;line-height: 50px;padding: 0 20px;font-size: 30px;background-color: #62707e;border-radius: 10px;
}
</style>

main.js👇

import Vue from 'vue'
import App from './App.vue'//编写导入的代码,往代码的顶部编写(规范)
import ZxyButton from './components/ZxyButton'
Vue.config.productionTip = false//进行全局注册
Vue.component('ZxyButton',ZxyButton)new Vue({el:'#app',render: (createElement) => {return createElement(App)}
}).$mount('#app')

导入局部组件👇

<template><div class="zxy-footer">我是zxy的尾巴<ZxyButton></ZxyButton>//就是这一行</div>
</template>

如果不像现在全局注册中,就像这个按钮在组件里面,可以这么写在这里插入图片描述
但是如果每个组件里面都想用这个button的话,就需要在想应用到的每个组件里面都写一遍上图的代码,太麻烦了。所以相同的东西,用全局组件很方便,只需写一个标签就好了

图文总结👇在这里插入图片描述

综合案例

看图拆分组件
在这里插入图片描述
组件中可以再拆组件:比如新鲜好物、热门品牌、最新专题中的小方块

用Vue开发页面的思路:
1.分析页面,按模块拆分组件,搭架子(局部或全局注册)
2.根据设计图,编写组件html结构css样式
3.拆分封装通用小组件(局部或全局注册)
4.通过js动态渲染,实现功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/244315.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:3_栈和队列

栈和队列 一.栈 1. 栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。**进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。**栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#x…

RabbitMQ系列之交换机的使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《RabbitMQ系列之交换机的使用》。&#x1f3af;&…

【C++】list容器功能模拟实现

介绍 上一次介绍了list队容器的迭代器模拟&#xff0c;这次模拟实现list的简单功能&#xff0c;尤其要注意构造函数、析构函数、以及赋值运算符重载的实现。 list容器需要接纳所有类型的数据&#xff0c;因此&#xff0c;结构设置与迭代器设置同理&#xff0c;需要引入结点&…

java web mvc-04-Apache Wicket

拓展阅读 Spring Web MVC-00-重学 mvc mvc-01-Model-View-Controller 概览 web mvc-03-JFinal web mvc-04-Apache Wicket web mvc-05-JSF JavaServer Faces web mvc-06-play framework intro web mvc-07-Vaadin web mvc-08-Grails 开源 The jdbc pool for java.(java …

Confluence6+mysql5.7破j安装避坑详细记录

目录 一、前言 二、下载与安装 1、版本和安装环境 2、安装数据库 3、配置数据库 4、安装confluence 三、Pj confluence 1、选择语言和产品安装 2、Pj 3、上传mysql驱动 4、重启Confluence服务继续安装 四、Confluence重启卸载方法 重启方法 方法一 方法二 卸载…

no space left on device

异常 在运行中容器异常中止,重新启动后出现的问题 [rootdxx xxx]# docker start 29258e5b52c9 Error response from daemon: write /var/lib/docker/containers/29258e5b52c9053ffa91afba5a3e4fc8519e7c99c7a184466bcdf236653bf10a/hash3291289824: no space left on device Er…

【Linux】Linux系统编程——pwd命令

文章目录 1.命令概述2.命令格式3.常用选项4.相关描述5.参考示例 1.命令概述 pwd&#xff08;Print Working Directory&#xff09;命令用于显示用户当前工作目录的完整路径。这是一个常用的命令&#xff0c;帮助用户确定他们目前所在的目录位置。 2.命令格式 基本的 pwd 命令…

动静态库的理解、制作、使用。

一.动静态库的理解。 1.什么是库&#xff1f; 代码是无穷无尽的&#xff0c;当程序猿在写一些项目时&#xff0c;未必所有代码亲历亲为&#xff0c;他们可以在网上寻找大佬写过的一些有关需求的代码&#xff0c;这些代码可以让他们拿过来直接使用&#xff0c;而省去了许多精力…

android使用相机 intent.resolveActivity returns null

问题 笔者使用java进行android开发&#xff0c;启动相机时 intent.resolveActivity returns null takePictureIntent.resolveActivity(getPackageManager()) null详细问题 笔者使用如下代码启动相机 // 启动相机SuppressLint("LongLogTag")private void dispatc…

大数据开发之Spark(RDD弹性分布式数据集)

第 1 章&#xff1a;rdd概述 1.1 什么是rdd rdd&#xff08;resilient distributed dataset&#xff09;叫做弹性分布式数据集&#xff0c;是spark中最基本的数据抽象。 代码中是一个抽象类&#xff0c;它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 1.1…

Pycharm运行提示(运行‘Python测试(00.py内)‘(u)

为什么有时候我在pycharm中运行代码会出现图片中的问题&#xff1f; 我们该如何改过来&#xff1f; 很简单 点击文件-设置 点击Python集成工具&#xff0c;在默认测试运行程序里修改为Unittest即可 再次运行代码就会显示正常的运行 你的pycharm可能是英文 如何英文变中文&…

idea——git提交到本地记录如何退回/删除

目录 一、git提交到本地记录如何退回/删除 一、git提交到本地记录如何退回/删除 git提交到本地记录&#xff0c;如下图【更新】记录&#xff0c;表示本次提交到git本地需要退回/删除的操作&#xff1a; 选中项目&#xff0c;右键点击【git】——>【Show History】——>…

书生·浦语大模型实战营-学习笔记4

XTuner 大模型单卡低成本微调实战 Finetune简介 常见的两种微调策略&#xff1a;增量预训练、指令跟随 指令跟随微调 数据是一问一答的形式 对话模板构建 每个开源模型使用的对话模板都不相同 指令微调原理&#xff1a; 由于只有答案部分是我们期望模型来进行回答的内容…

2024.1.24 GNSS 学习笔记

1.伪距观测值公式 2.载波相位观测值公式 3.单点定位技术(Single Point Positionin, SPP) 仅使用伪距观测值&#xff0c;不使用其他的辅助信息获得ECEF框架下绝对定位技术。 使用广播星历的轨钟进行定位&#xff0c;考虑到轨钟的米级精度&#xff0c;所以对于<1米的误差&…

【Android】在WSA安卓子系统中进行新实验性功能试用与抓包(2311.4.5.0)

前言 在根据几篇22和23的WSA抓包文章进行尝试时遇到了问题&#xff0c;同时发现新版Wsa的一些实验性功能能优化抓包配置时的一些步骤&#xff0c;因而写下此篇以作记录。 Wsa版本&#xff1a;2311.40000.5.0 本文出现的项目&#xff1a; MagiskOnWSALocal MagiskTrustUserCer…

【刷题】 leetcode 面试题 01.06 字符串压缩

字符串压缩 字符串压缩思路一&#xff08;双指针顺畅版&#xff09;思路二&#xff08;sprintf函数巧解版&#xff09; Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读下一篇文章见&#xff01;&#xff01;&#xff01; 字符串压缩 来看题目&#xff1a; 根据题目…

【华为 ICT HCIA eNSP 习题汇总】——题目集4

1、&#xff08;多选&#xff09;网络中出现故障后&#xff0c;管理员通过排查发现某台路由器的配置被修改了&#xff0c;那么管理员应该采取哪些措施来避免这种状况再次发生&#xff1f; A、管理员应该通过配置 ACL 来扩展只有管理员能够登录设备 B、管理员应该在路由的管理端…

基于Servlet建立表白墙网站

目录 一、设计思想 二、设计表白墙页面&#xff08;前端--VSCode&#xff09; 1、效果图 2、html部分&#xff08;网页上有哪些内容&#xff09; 3、css部分&#xff08;页面内容的具体样式&#xff09; 4、js部分&#xff08;页面行为&#xff09; 三、借助Servlet实现客…

python内置函数有哪些?整理到了7大分类48个函数,都是工作中常用的函数

python内置函数 一、入门函数 1.input() 功能&#xff1a; 接受标准输入&#xff0c;返回字符串类型 语法格式&#xff1a; input([提示信息])实例&#xff1a; # input 函数介绍text input("请输入信息:") print("收到的数据是:%s" % (text))#输出…

Linux之快速入门

一、Linux目录结构 从Windows转到Linux最不习惯的是什么&#xff1a; 目录结构 Windows会分盘&#xff0c;想怎么放东西就怎么放东西&#xff0c;好处自由&#xff0c;缺点容易乱 Linux有自己的目录结构&#xff0c;不能随随便便放东西 /&#xff1a;根目录/bin:二进制文件&…