Tips:一些记录,一些笔记

2023/1/20
FRIDAY
人生还是稍微有点难的,
你要做好准备,
「加油」能解决的问题,... 不多。
—— 李诞(脱口秀)

01
单页面应用程序(Single Page Application)
单页面应用程序(Single Page Application),指的是一个Web网站中只有唯一的一个HTML页面,所有的功能与交互都是在这唯一的一个页面中完成的。
02
vue-cli
vue-cli是Vue.JS开发的标准工具,它简化了程序员基于Webpack创建工程化的Vue项目的过程。
vue-cli官方网站:https://cli.vuejs.org/zh/

官方网站对该工具的定位的介绍:
Vue CLI 致力于将 Vue 生态中的工具基础标准化。它确保了各种构建工具能够基于智能的默认配置即可平稳衔接,这样你可以专注在撰写应用上,而不必花好几天去纠结配置的问题。与此同时,它也为每个工具提供了调整配置的灵活性,无需 eject。
https://cli.vuejs.org/zh/guide/
在Vue.JS 2.x的时候,vue-cli是比较常见的,但是现在Vue.JS 3.x官方主推的工具是【create-vue】,这个工具也是后面会做笔记记录与学习的,当前,我们先掌握vue-cli。
官方网站对于vue-cli现状的描述:
⚠️ Vue CLI 现已处于维护模式!
现在官方推荐使用 create-vue 来创建基于 Vite 的新项目。 另外请参考 Vue 3 工具链指南 以了解最新的工具推荐。
https://cli.vuejs.org/zh/guide/
03
vue-cli:安装
vue-li是npm上的一个全局包,使用npm install命令就可以安装:
npm install -g @vue/cli
装好后,就可以通过npm list查看到了:
adamhuan@AdamhuandeMacBook-Pro vue.js % npm listadamhuan@ Users/adamhuan├── @graphql-tools/utils@9.1.1 extraneous├── @types/express@4.17.1├── @types/jasmine@2.8.0├── @types/lodash@4.14.191├── @types/mocha@10.0.0├── @types/react-dom@17.0.1├── @vue/cli-init@5.0.8├── @vue/cli@5.0.8├── ajax@0.0.4├── axios@1.2.0├── vue@3.2.36├── webpack-cli@5.0.0└── webpack@5.75.0adamhuan@AdamhuandeMacBook-Pro vue.js %
也可以查看到安装的vue-cli的版本号:
adamhuan@AdamhuandeMacBook-Pro vue.js % vue -V@vue/cli 5.0.8adamhuan@AdamhuandeMacBook-Pro vue.js %
04
vue-cli:快速生成工程化的Vue项目
语法:
vue create 项目名称
通过vue-cli创建项目的样例:



其中:
| Babel(必选) | 为Webpack提供高级JS语言支持 |
| TypeScript | 微软开发的脚本语言,比JavaScript强大 |
| Progressive Web App(PWA) Support | 渐进式网页应用支持 |
| Router | 路由 |
| Vuex | |
| CSS Pre-processors | CSS预处理器: less sass scss stylus |
| Linter Formatter | 约束团队中代码开发规范的插件 |
| Unit Testing | 单元测试 |
| E2E Testing |

这里先选择【Vue.JS 2.x】的版本。


各自的配置文件,独立记录。

vue-cli:是否将上面的选择存下来,以便于未来项目的创建

设置存储的文件的名称。

vue-cli:开始创建。

如上所示,最终创建成功。
进入项目看看:
adamhuan@AdamhuandeMacBook-Pro vue.js % vue create 09_vuejs_by_cliVue CLI v5.0.8? Please pick a preset: Manually select features? Check the features needed for your project: Babel, CSS Pre-processors? Choose a version of Vue.js that you want to start the project with 2.x? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported bydefault): Less? Where do you prefer placing config for Babel, ESLint, etc.? In dedicated configfiles? Save this as a preset for future projects? Yes? Save preset as: vue-cli-template-20230120🎉 Preset vue-cli-template-20230120 saved in Users/adamhuan/.vuercVue CLI v5.0.8✨ Creating project in Users/adamhuan/adamhuan_data/learning_data/vue.js/09_vuejs_by_cli.🗃 Initializing git repository...⚙️ Installing CLI plugins. This might take a while...added 837 packages in 11s🚀 Invoking generators...📦 Installing additional dependencies...added 20 packages in 2s⚓ Running completion hooks...📄 Generating README.md...🎉 Successfully created project 09_vuejs_by_cli.👉 Get started with the following commands:$ cd 09_vuejs_by_cli$ npm run serveadamhuan@AdamhuandeMacBook-Pro vue.js %adamhuan@AdamhuandeMacBook-Pro vue.js % pwd/Users/adamhuan/adamhuan_data/learning_data/vue.jsadamhuan@AdamhuandeMacBook-Pro vue.js %adamhuan@AdamhuandeMacBook-Pro vue.js % ls -ltrtotal 0drwxrwxrwx 10 adamhuan staff 320 1 13 14:35 01_webpack_example_line_with_diff_colordrwxr-xr-x 3 adamhuan staff 96 1 13 23:48 02_vuejs_helloworlddrwxr-xr-x 7 adamhuan staff 224 1 15 17:15 03_vuejs_directivesdrwxr-xr-x 3 adamhuan staff 96 1 16 23:14 04_example_综合案例_1.htmldrwxr-xr-x 4 adamhuan staff 128 1 17 10:32 staticdrwxr-xr-x 3 adamhuan staff 96 1 17 21:12 05_vuejs_过滤器drwxr-xr-x 3 adamhuan staff 96 1 19 10:37 06_vuejs_侦听器drwxr-xr-x 3 adamhuan staff 96 1 19 19:48 07_vuejs_计算属性drwxr-xr-x 3 adamhuan staff 96 1 19 23:31 08_axiosdrwxr-xr-x 7 adamhuan staff 224 1 20 13:12 venvdrwxr-xr-x 14 adamhuan staff 448 1 20 16:25 09_vuejs_by_cliadamhuan@AdamhuandeMacBook-Pro vue.js %adamhuan@AdamhuandeMacBook-Pro vue.js % cd 09_vuejs_by_cliadamhuan@AdamhuandeMacBook-Pro 09_vuejs_by_cli %adamhuan@AdamhuandeMacBook-Pro 09_vuejs_by_cli % ls -ltrtotal 1424-rw-r--r-- 1 adamhuan staff 73 1 20 16:25 babel.config.js-rw-r--r-- 1 adamhuan staff 118 1 20 16:25 vue.config.js-rw-r--r-- 1 adamhuan staff 279 1 20 16:25 jsconfig.jsondrwxr-xr-x 4 adamhuan staff 128 1 20 16:25 publicdrwxr-xr-x 6 adamhuan staff 192 1 20 16:25 src-rw-r--r-- 1 adamhuan staff 430 1 20 16:25 package.jsondrwxr-xr-x 527 adamhuan staff 16864 1 20 16:25 node_modules-rw-r--r-- 1 adamhuan staff 704583 1 20 16:25 package-lock.json-rw-r--r-- 1 adamhuan staff 279 1 20 16:25 README.mdadamhuan@AdamhuandeMacBook-Pro 09_vuejs_by_cli %
按照之前终端中的提示,运行这个项目:
npm run serve


可以看到,项目已经运行起来了。
在浏览器中访问:http://localhost:8080/

可以看到,该项目成功运行起来了。
05
项目结构

| node_modules | NPM安装的模块包的路径 |
| public/favicon.ico | 网站的页面的图标 |
| public/index.html | 单页面应用程序的唯一的HTML页面 |
| src | 源码目录 |
| src/assets | 存放项目中用到的静态资源文件: css样式表 图片资源 |
| src/components | 程序员封装的,可复用的组件,都要放在该目录下 |
| src/main.js | 项目的入口文件,整个项目的运行,要先执行main.js |
| src/App.vue | 项目的根组件 |
| .gitignore | GIT上传的时候,忽略哪些文件或文件夹 |
| babel.config.js | Babel的配置文件 |
| package.json | 项目中用到的包的配置文件 |
06
Vue.JS项目的运行流程
在工程化的项目中,Vue要做的事情:
通过main.js,把App.vue渲染到index.html中的指定区域中。
文件:main.js

// 导入 Vue 包,得到 Vue 构造函数import Vue from 'vue'// 导入 App.vue 根组件// 将来需要将 App.vue 中的模板结构渲染到HTML页面中import App from './App.vue'Vue.config.productionTip = false// 创建 Vue 实例对象new Vue({// 把 render 函数指定的组件,渲染到HTML页面中render: h => h(App),}).$mount('#app') // 定义 Vue 控制的HTML区域
文件:index.html

Vue会用xxxx.vue中的模板结构(template)替换掉index.html中的【<div id="app"></div>】
例如
新建一个组件文件:src/Leviathan.vue

修改:main.js
// 导入 Vue 包,得到 Vue 构造函数import Vue from 'vue'// 导入 App.vue 根组件// 将来需要将 App.vue 中的模板结构渲染到HTML页面中import App from './App.vue'import Leviathan from './Leviathan.vue'Vue.config.productionTip = false// 创建 Vue 实例对象new Vue({// 把 render 函数指定的组件,渲染到HTML页面中render: h => h(Leviathan),}).$mount('#app') // 定义 Vue 控制的HTML区域
然后,在浏览器中看看页面上的变化:

可以看到原来index.html中的【div id="app"】的已经被替换掉了。
END
温馨提示
如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。




