Vue(八)vue脚手架(1)

脚手架规定,所有组件都必须创建为.vue文件。vue文件专门包含一个组件的HTML+CSS+JS的新文件类型;

一个.vue文件中标配包含3大部分:

· 专门编写组件的HTML内容

若没有提示和颜色,安装vscode vetur插件即可。

·

vue脚手架采用组件化开发,若一个组件js对象想要抛出让别人能够引用,必须使用:

export default { 组件内容 }

·

(3)路由器对象: src/router/index.js

路由器对象包含2大部分,路由字典routes和路由器对象router。在路由器对象中,每个文件都是一个独立的模块对象。模块之间可以直接引用。

a.抛出

export default { 组件或对象的内容 }

b.引入

import 自定义对象别名 from “相对路径”

(4)全局组件和子组件片段: src/components

所有组件都要创建为.vue文件,标准都要包含3部分(template、script、style)只要有js都要export default{ }抛出。

在创建全局组件时,先在src/components/创建一个普通的子组件.vue,再在main.js中new Vue()之前引入子组件.vue,并将子组件对象转为全局组件;

import 子组件对象别名 from “./components/子组件.vue”

Vue.component(“标签名”,子组件对象别名)

示例:封装页头组件过程;

(1)在src/components/中新建MyHeader.vue

(2)剪切src/App.vue中

到MyHeader.vue中中

原理:

(1)为css中的选择器自动添加随机名称的属性选择器;

(2)为当前组件中的所有HTML元素自动添加与属性选择器同名的自定义属性;

(3)不同组件的scoped为每个组件添加的随机的属性名各不相同的属性选择器,即使有多个选择器也不会发生冲突;

(4)只有当前组件内部的HTML元素带有的自定义属性名才能匹配当前组件自己的css中的属性选择器。

但是此方法效率低,只对

方法2:主动添加class名

今后每创建一个组件,都有一个唯一父元素,给唯一的父元素上加一个与当前组件名相同的class名(可避免重复且便于维护)。

当前组件内的所有css选择器,一律用这个唯一父级的class名开头;

5.懒加载

单页面应用切换快,但是首屏加载极慢。因为脚手架webpack会默认把所有组件集中打包为一个巨大的app.js文件,在首屏一次性全部下载。

为解决这个问题就需要用到懒加载,即用户想看什么就只下载什么,用户暂时不想看的,没必要下载。

懒加载的两种方式:

(1)异步延迟加载(默认+常用)

即优先下载并显示首页内容,其它页面组件采用底层异步下载的方式,在不影响主屏下载速度的情况下,异步下载。既可以加快首屏加载的速度,又能享受单页面应用带来的好处。缺点是会偷跑流量。

Ⅰ.不要在router/index.js开头过早的引入除首页之外的其它页面组件,因为用Import引入的东西vue都会将其打包在app.js中,首屏下载。

Ⅱ.改造路由字典项(除首页之外的路由字典项),如下:

{

path:“/相对路径”,

component: ()=>import(

/* webpackChunkName: “自定义js文件名” */

“…/views/页面组件.vue”

)

}

(2)彻底懒加载(了解)

如果用户不看哪些页面,就完全不下载,等到用户想看某个页面时,临时下载。

Ⅰ.先实现异步懒加载的两步,不提前引入+component变成匿名箭头函数。

Ⅱ.配置脚手架,去掉prefetch

a.在脚手架根目录,创建vue.config.js;

b.在vue.config.js中添加以下固定代码:

module.exports={

chainWebpack:config=>{

config.plugins.delete(“prefetch”)

//删除index.html开头的带有prefetch属性的link,不要异步下载暂时不需要的页面组件文件

},

}

c.重启npm run serve。


举例:使用脚手架生成我的第一个Vue项目

项目完整的文件结构如下:

文件代码如下:

public/index.html

<%= htmlWebpackPlugin.options.title %>

We’re sorry but <%= htmlWebpackPlugin.options.title %> doesn’t work properly without JavaScript enabled.

Please enable it to continue.

src/App.vue

src/assets/css/home.css

.home>h1 {

background-color: red;

color: yellow;

}

.home>button {

width: 300px;

height: 50px;

border-radius: 5px;

background-color: aqua;

border: 0px;

font-size: 21px;

color: white;

font-weight: bolder;

}

src/views/Home.vue(主页)

Vue logo

我的第一个脚手架项目!

我的名字:{{ uname }}

ID:{{ uid }}

csdn

<button @click=“search”>访问个人主页

src/assets/css/about.css

.about>h1 {

background-color: aqua;

color: coral;

}

src/views/About.vue(关于页)

This is an about page

src/router/index.js(路由器对象)

import Vue from ‘vue’

import VueRouter from ‘vue-router’

import Home from ‘…/views/Home.vue’

Vue.use(VueRouter)

const routes = [{

path: ‘/’,

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

path: ‘/’,

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-01S1aKjE-1715705437481)]

[外链图片转存中…(img-51NAjFXs-1715705437481)]

[外链图片转存中…(img-spBTYMQq-1715705437482)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值