[Vue]vue cli (脚手架)(项目的创建与分析)(三)

简介: [Vue]vue cli (脚手架)(项目的创建与分析)(三)

4.2 package.json

4.3 main.js

/* 
  该文件是整个项目的入口文件
*/
//引入Vue
import Vue from 'vue'
//引入App组件,它是所有组件的父组件
import App from './App.vue'
//关闭vue的生产提示
Vue.config.productionTip = false
//创建Vue实例对象---vm
new Vue({
  // 将App组件放入容器中
  render: h => h(App),
// 指定vue控制的容器
}).$mount('#app')

4.3.1 render()

在main.js中使用render()函数将App组件放入容器中,是由于在脚手架中默认引入的vue不是完整的vue,而是缺少模板解析器的vue。

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

(1).vue.js是完整版的Vue,包含:核心功能+模板解析器。

(2).vue.runtime.xxx.js是运行版的Vue,只包含:核心功能;没有模板解析器。

模板解析器是用于解析vue配置项中的template配置项。将vue中的模板解析器去除后,可以节省项目的占用空间,同时也更加符合逻辑,因为项目构建后已经是浏览器可以解析的html、css、js等文件,不再需要模板解析器。

render()的完整写法:

//创建Vue实例对象---vm
new Vue({
  // 将App组件放入容器中
  // 简写,由于此函数不需要使用this,可以写成箭头函数
  // 然后再对箭头函数进行简写
  // render: h => h(App),
  // 完整写法
  render(createElement) {
    // render函数接收一个创建页面元素的createElement函数,
    // 用于创建页面元素
    // render()函数将创建的元素返回,再将其放入容器中
    return createElement(App)
  }
// 指定vue控制的容器
}).$mount('#app')
//创建Vue实例对象---vm
new Vue({
  // 将App组件放入容器中
  // 简写,由于此函数不需要使用this,可以写成箭头函数
  // 然后再对箭头函数进行简写
  // render: h => h(App),
  // 完整写法
  // render(createElement) {
    // render函数接收一个创建页面元素的createElement函数,
    // 用于创建页面元素
    // render()函数将创建的元素返回,再将其放入容器中
    // return createElement(App)
  // }
  render(createElement) {
    // 创建返回 <h1>hello world</h1>
    return createElement('h1', 'hello world')
  }
// 指定vue控制的容器
}).$mount('#app')

App组件外的其他组件使用模板<template>标签能够被放入页面,是由于vue脚手架为其配置了模板编译的第三方包。

4.4 App.vue

// 框架
<template>
  <div id="app">
    <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>

4.5 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">
    <!-- 配置页签图标  <%= BASE_URL %> 表示public文件夹所在的路径,防止项目部署后出现路径的错误-->
    <!-- 所以在该html文件中路径不使用 ./ ../ -->
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <!-- 网页的标题 -->
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <!-- 浏览器不支持js,页面会显示noscript标签中的内容;支持js则不渲染noscript标签中的内容 -->
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <!-- 提供的容器 -->
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

<%= htmlWebpackPlugin.options.title %> 会到项目的package.json文件中寻找项目的name配置项

5. 修改默认配置

5.1 查看项目的默认配置

Vue 脚手架隐藏了所有 webpack 相关的配置,若想查看具体的 webpakc 配置,终端运行:

vue inspect > output.js

5.2 修改项目的默认配置

可以修改的配置项以及如何修改可以参考官网:

Vue CLI 官网 配置参考

在项目文件夹下新建 vue.config.js 文件,要修改的配置项都写在该文件中。vue脚手架会将修改的配置项与默认的配置项进行整合。

只要在 vue.config.js 文件中修改了配置项,就要重新启动项目。

vue.config.js 文件中不能什么配置都不写,要么不写不创建 vue.config.js 文件,要么创建了 vue.config.js 文件就要写配置项,至少一个。

5.2.1 修改入口文件名

// 使用 @vue/cli-service 提供的 defineConfig 帮手函数,以获得更好的类型提示
// vue.config.js
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  // 选项
  pages: {
    index: {
      // 入口
      entry: 'src/my_main.js'
    }
  }
})

5.2.2 关闭代码语法检查

// 使用 @vue/cli-service 提供的 defineConfig 帮手函数,以获得更好的类型提示
// vue.config.js
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  // 选项
  pages: {
    index: {
      // page 的入口
      entry: 'src/my_main.js'
    }
  },
  // 关闭语法检查
  lintOnSave: false
})


相关文章
|
6天前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
51 1
|
17天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1066 0
|
2月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
48 1
vue学习第一章
|
2月前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
34 1
|
2月前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
40 1
vue学习第四章
|
2月前
|
JavaScript 前端开发 算法
vue学习第7章(循环)
欢迎来到瑞雨溪的博客,一名热爱JavaScript和Vue的大一学生。本文介绍了Vue中的v-for指令,包括遍历数组和对象、使用key以及数组的响应式方法等内容,并附有综合练习实例。关注我,将持续更新更多优质文章!🎉🎉🎉
32 1
vue学习第7章(循环)
|
2月前
|
JavaScript 前端开发
vue学习第九章(v-model)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生,自学前端2年半,正向全栈进发。此篇介绍v-model在不同表单元素中的应用及修饰符的使用,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
35 1
vue学习第九章(v-model)
|
2月前
|
JavaScript 前端开发 开发者
vue学习第十章(组件开发)
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文深入讲解Vue组件的基本使用、全局与局部组件、父子组件通信及数据传递等内容,适合前端开发者学习参考。持续更新中,期待您的关注!🎉🎉🎉
48 1
vue学习第十章(组件开发)
|
2月前
|
JavaScript 前端开发
vue学习第十一章(组件开发2)
欢迎来到我的博客,我是瑞雨溪,一名自学前端两年半的大一学生,专注于JavaScript与Vue。本文介绍Vue中的插槽(slot)使用方法,包括基本插槽、具名插槽及作用域插槽,帮助你在组件开发中实现内容的灵活定制。如果你觉得有帮助,请关注我,持续更新中!🎉🎉🎉
25 1
vue学习第十一章(组件开发2)