关于Vue脚手架

devtools/2024/10/21 5:07:22/

一、简介与安装

1 简介

Vue Cli 全称Vue command line interface(Vue命令行接口),俗称Vue脚手架, 是Vue官方提供的一个标准化开发工具(开发平台)。 可以帮助我们快速创建一个开发Vue项目的标准化基础架子。【集成了webpack配置】

参考官网:Vue CLI

最新版本是4.x,目前处于维护模式

其优点

1. 开箱即用,零配置
2. 内置babel等工具
3. 标准化的webpack配置

2 安装脚手架

第一步:验证npm指令是否存在

如果不存在,需要安装nodejs软件
​
官网:https://nodejs.org/en

第二步:更换镜像

npm config set registry https://registry.npmmirror.com
​
or 
​
npm config set registry htps://registry.npm.taobao.org

扩展:

查看是否更换成功 : npm config get registry

删除最新镜像: npm config delete registry

第三步:安装脚手架(全局安装,只需要安装一次)

npm install -g @vue/cli
​
# OR
​
yarn global add @vue/cli

第四步:测试是否安装成功,检查一下版本号

vue -V
或者
vue --version

二、Vue项目创建与解析

1 如何创建Vue项目

第一步: 选择项目要创建的位置

比如在D:盘的一个文件夹projects里,那么cmd当前位置,需要切入该文件夹里

 

 第二步:创建项目,想好自己的项目名称,比如first_vue

 

第三步: 按照提示来

错误总结

第一个:java_home

 

第二个:Error: spawn yarn ENOENT

打开 C盘 , 在 C盘 里,打开 users (用户名)的文件夹,然后在右侧搜索名为 .vuerc 的文件

{"useTaobaoRegistry": false,"packageManager": "npm"
}

2 项目相关指令

启动项目:npm run serve
暂停项目:Ctril+C

3 脚手架组织结构解析

脚手架文件结构:

.文件目录
├── node_modules:  vue库文件以及第三方库文件 
├── public
│   ├── favicon.ico: 页签图标
│   └── index.html: 主页面
├── src
│   ├── assets: 存放静态资源
│   │   └── logo.png
│   │── components: 存放组件
│   │   └── HelloWorld.vue
│   │── App.vue: 汇总所有组件
│   └── main.js: 入口文件
├── .gitignore: git版本管制忽略的配置
├── babel.config.js: babel的配置文件 ,可以自行参考babel官网
├── package-lock.json: 包版本控制文件 
├── package.json: 应用包配置文件
└── README.md: 应用描述文件

三、入门案例

src/components/School1.vue

<template><ul class="schoolUl"><li>学校名称:{{schoolName1}}</li><ul><li>学校地址:{{schoolAddress1}}</li></ul></ul>
</template>
​
<script>export default {name:"School1",data(){return {schoolName1:"吉林大学",schoolAddress1:"高新区前进大街2699号"}}}
</script>
​
<style>.schoolUl{list-style-type:lower-alpha;}
</style>

src/components/School2.vue:

<template><ul class="schoolUl"><li>学校名称:{{schoolName2}}</li><ul><li>学校地址:{{schoolAddress2}}</li></ul></ul>
</template><script>export default {name:"School2",data(){return {schoolName2:"北京大学",schoolAddress2:"海淀区颐和园路5号"}}}
</script><style>.schoolUl{list-style-type:lower-alpha;}
</style>

src\components\City.vue:

 

<template>
  <ul>
    <li>{{cityName1}}
       <School1></School1>
    </li>
    <li>{{cityName2}}
       <School2></School2>
    </li>
  </ul>
</template>

<script>
import School1 from './School1.vue'
import School2 from './School2.vue';
export default {
    name:"City",
    data(){
        return {
            cityName1:"长春市",
            cityName2:"北京市"
        }
    },
    components:{
         School1,
         School2
    }
}
</script>

<style>
</style>

src/App.vue

<template><div id="app"><City></City></div>
</template>
​
<script>
import City from './components/City.vue'
​
export default {name: 'App',components: {City}
}
</script>
​
<style>
</style>

src/main.js:

/*该文件是整个项目的入口文件
*/
// 引入Vue
import Vue from 'vue'
//引入App组件,他是所有组件的父组件
import App from './App.vue'
​
//关闭vue的生产提示
//Vue.config.productionTip = false
​
new Vue({// 简写形式     将App组件放入容器中render: h => h(App),// 完整形式// render(createElement){//     return createElement(App)// }}).$mount('#app')

public/index.html:

<!DOCTYPE html>
<html lang=""><head><meta charset="UTF-8"><!-- 针对IE浏览器的特殊配置,含义是让IE浏览器以最高渲染级别渲染页面 --><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 JavaScriptenabled. Please enable it to continue.</strong></noscript><!-- 容器 --><div id="app"></div></body>
</html>
​

小贴士:常用快捷键:控制台打开的快捷键: ctrl+` 

四、render函数

按照以前的写法,我们应该这样写:

import Vue from 'vue'
import App from './App.vue'
​
Vue.config.productionTip = false
​
new Vue({el:"#app"template: `<App></App>`
});

但是会报如下错误:

因为vue项目,默认引用的是node_modules\vue\dist\vue.runtime.esm.js,在node_modules\vue\package.json中明晃晃的写着:模块化语法时,引用的是该js  

vue.js 与 vue.runtime.xxx.js的区别:

1. vue.js 是完整版的 Vue,包含:核心功能+模板解析器
2. vue.runtime.xxx.js 是运行版的 Vue,只包含核心功能,没有模板解析器

因为 vue.runtime.xxx.js 没有模板解析器,所以不能使用 template 配置项,需要使用 render函数接收到的createElement 函数去指定具体内容

render(a){//console.log(typeof a) // Function, 该函数就是用来创建DOM节点的return a('h1','你好,欢迎来到我的家');
}
//简写:
render:h => h(h1)

自己定义一个用于创建节点的函数,你应该会这么定义:

function createNode(nodeName,content){var node = document.createElement(nodeName);var txt = document.createTextNode(content)node.appendChild(txt)return node;
}

五、配置文件

vue.config.js 是一个可选的配置文件,如果项目的(和package.json 同级的)根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载

使用vue.config.js 可以对脚手架进行个性化定制,详见配置 参考官网:配置参考 | Vue CLI

module.exports = {pages: {index: {// 入口entry: 'src/index/main.js'}},// 关闭语法检查lintOnSave:false
}

http://www.ppmy.cn/devtools/127482.html

相关文章

使用 surya-ocr 进行文字识别

surya-ocr 是一个开源的 OCR 模型&#xff0c;个人用是免费的&#xff0c;商用是需要License&#xff0c;收费标准有些复杂&#xff0c;具体可以查看官网。 主要包括以下功能&#xff1a; 支持 90 多种语言的 OCR任何语言的行级文本检测版面分析&#xff08;表格、图像、标题等…

高级java每日一道面试题-2024年10月12日-Web篇-http,servlet,tomcat 之间是什么关系?

如果有遗漏,评论区告诉我进行补充 面试官: http&#xff0c;servlet&#xff0c;tomcat 之间是什么关系&#xff1f; 我回答: HTTP&#xff08;超文本传输协议&#xff09;、Servlet 和 Tomcat 之间的关系可以这样理解&#xff1a;它们是构建Web应用程序的不同层次的技术。下…

帝国cms取得内容和栏目链接地址的方法

用以下2个函数解决内容页面和栏目页面链接&#xff0c;可有效解决更改URL显示方式&#xff08;动态、静态、伪静态&#xff09;不需要修改模版中的链接地址。 内容页链接地址&#xff1a; $infourlsys_ReturnBqTitleLink($r); $r为含“id,classid,newspath,filename,groupid,ti…

使用Diffutoon把视频转换成动漫风格,无需部署,开箱即用

无论是图片动漫转换以及视频动漫转换&#xff0c;我们前期也介绍过相关的模型&#xff0c;但是其模型输出的动漫视频不是有瑕疵&#xff0c;就是动漫效果不唯美&#xff0c;今天介绍一个modelscope社区开源的动漫风格转换模型Diffutoon。 Diffutoon模型接受视频作为输入&#x…

如何在Android中进行日志打印和调试?

在Android开发中&#xff0c;日志打印和调试是开发者定位问题、优化性能和提升应用质量的重要手段。以下将详细阐述如何在Android中进行日志打印和调试&#xff0c;包括日志工具的使用、调试技巧以及实践中的最佳实践。 一、日志工具的使用 1. Log类 Android中的日志工具类是…

Kafka异常重试方案小记

背景 在最近进行的项目架构升级中&#xff0c;我们对原有的核心项目结构进行了细致的拆分。 现在&#xff0c;核心项目与非核心项目之间的通信和数据交换主要通过Kafka这一中间件来实现。 这种设计主要体现在核心项目向非核心项目发送通知&#xff0c;这些通知大致可以分为三个…

分布式混沌工程工具(ChaosBlade)

ChaosBlade是一个分布式混沌工程工具&#xff0c;主要用于压力测试和故障注入&#xff0c;支持多种云原生应用程序。 一、下载与安装 获取软件&#xff1a; 前往ChaosBlade的官方GitHub发布页面&#xff08;https://github.com/chaosblade-io/chaosblade/releases&#xff09…

【PhpSpreadsheet】ThinkPHP5+PhpSpreadsheet实现批量导出数据

目录 前言 一、安装 二、API使用 三、完整实例 四、效果图 前言 为什么使用PhpSpreadsheet&#xff1f; 由于PHPExcel不再维护&#xff0c;所以建议使用PhpSpreadsheet来导出exlcel&#xff0c;但是PhpSpreadsheet由于是个新的类库&#xff0c;所以只支持PHP7.1及以上的版…