Vue入门,一切从vue-cli开始

1 从vue-cli 开始

官方文档: https://cli.vuejs.org/zh/guide/

vsCode中的终端没有管理员权限时:用管理员权限运行 Windows PowerShell,执行命令:

set-ExecutionPolicy RemoteSigned

用 get-ExecutionPolicy 命令查看当前设置;

1.1 安装node.js 和 vue

官方下载: https://nodejs.org/en/download

npm: Node Package Manager(即 npm) (node.js的包管理工具)

配置 npm 远程仓库地址:

npm config set registry https://registry.npm.taobao.org

安装 vue-cli

npm install -g @vue/cli

-g 是全局的意思,表示当前操作系统中所有用户均可使用,并自动配置 Vue 环境变量

安装完成后查看vue版本(注意大写的V)

vue -V

1.2 创建 vue-cli 工程

Vue CLI 现已处于维护模式!

现在官方推荐使用 create-vue 来创建基于 Vite 的新项目或用ui界面管理插件;

命令:

vue ui

进入ui界面选择创建即可;

也可以用命令创建:

vue create vue-project-01

工程基本选项:

我选择的是 vue2.0

工程选项选择了:Babel ,Router , Vuex

Babel : ES6 高级语法向低版本语法兼容的工具;
Router :路由管理器;
Vuex :全局状态管理工具,管理内存中全局共享的数据 ;
Linter :代码规范检验工具,其要求较严格,初学者建议不要选;

工程创建完毕后,启动工程:

进入工程目录,开启终端,(建议是配置vscode的终端)执行命令:

npm run serve

关闭工程: 在终端按 ctrl+c

1.3 安装 element-ui 和 axios
element-ui 官方地址(各种组件代码和用法):

用命令安装:

npm i element-ui -S
npm i axios -S

在main.js中配置 element-ui 和 axios

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

import axios from 'axios'
Vue.prototype.axios = axios

#Vue.use(Element UI) 第一个参数应是插件本身,可选的第二个参数是要传递给插件的选项。
#插件可以是一个带 install() 方法的对象,亦或直接是一个将被用作 install() 方法的函数。插件选项 (app.use() 的第二个参数) 将会传递给插件#的 install() 方法。
#若 app.use() 对同一个插件多次调用,该插件只会被安装一次。

#Vue.prototype.axios = axios ,给Vue函数添加一个原型属性KaTeX parse error: Expected 'EOF', got '#' at position 15: axios 指向Axios #̲这样做的好处是在vue实例或组…axios就能执行axios 方法了
#vue3中用 app.config.globalProperties 替代 Vue.prototype 这种写法

2.项目介绍

2.1启动项目

package.json 中启修改端口号并动项目
鼠标悬停在 scripts 下的 serve上,会出现运行脚本 | 调试脚本,点击即可启动项目
或者用命令启动: npm run serve
请添加图片描述

2.2各个文件说明

​#### main.js程序入口文件,是初始化vue实例并使用需要的插件,加载各种公共组件。

import Vue from 'vue'
/* 引入 vue.js 文件,完整的写法   import Vue from "../node_modules/vue/dist/vue.js"; */
import App from './App.vue'
import router from './router'
/* 引入 vue.js 文件,完整的写法   import Vue from "./router/index.js"; */
/* 如果from的来源是文件夹,那么在package.json存在且设置正确的情况下,会默认加载package.json;
  若不满足,则加载index.js;若不满足,则加载index.vue。 */

import store from './store'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import axios from 'axios'
Vue.use(ElementUI);
Vue.prototype.axios = axios

Vue.config.productionTip = false
/* 为true时,会有提示警告来帮助你处理常见的警告和陷阱;
  默认为false是因为生产环境下,这些警告可能会应用体积而且警告检查还有一些小的开销 */

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
/* 
router  注册路由,
store 注册全局状态管理,状态就是数据,
render: h => h(App) 是下面内容的缩写:
render: function (createElement) {
    return createElement(App);
}
进一步缩写:
render (createElement) {
    return createElement(App);
}
再进一步:
render (h){
    return h(App);
}
再按照箭头函数的写法:
render: h => h(App);
createElement 这个函数的作用就是生成一个 VNode节点,
render 函数得到这个 VNode 节点之后,返回给 Vue.js 的 mount 函数,渲染成真实 DOM 节点,并挂载到根节点上;

应用实例必须在调用了 .mount() 方法后才会渲染出来。该方法接收一个“容器”参数,可以是一个实际的 DOM 元素或是一个 CSS 选择器字符串:
应用根组件的内容将会被渲染在容器元素里面。容器元素自己将不会被视为应用的一部分。
.mount() 方法应该始终在整个应用配置和资源注册完成后被调用。同时请注意,不同于其他资源注册方法,它的返回值是根组件实例而非应用实例。
*/

​#### index.html 主页,项目入口 ;
main.js 中 mount 的就是这个 div;

App.vue 本质上也是一个js文件,相当于一个模板文件;

当根组件没有设置 template 选项时,Vue 将自动使用容器的 innerHTML 作为模板。
参照 Vue router 的官方文档: https://router.vuejs.org/zh/guide/

```
router/index.js 路由

当加入 Vue Router 时,我们需要做的就是将我们的组件映射到路由上,让 Vue Router 知道在哪里渲染它们;
在vue文件中,即通过或者来渲染路由匹配到的组件,在上边的 app.vue 文件中通过来路由到 components/HelloWorld.vue ;

views/HomeView.vue 和 views/AboutView.vue

这个两个文件都是定义的一个路由组件, HomeView.vue 作为 components/HelloWorld.vue 的父组件 ,子组件接收父组件 HomeView.vue的数据;
HelloWorld.vue 用 export 导出了 ‘HelloWorld’ 组件,该组件中用 props 选项给该组件定义了一个 ‘msg’ 属性,这个属性作为组件实例的属性使用;
HomeView.vue 用 import HelloWorld from '@/components/HelloWorld.vue' 导入了 ‘HelloWorld’ 组件 ,
在导出自身 ‘HomeView’ 组件时注册了 ‘HelloWorld’ 组件 (components是局部注册组件,注册后只能在当页调用)

HomeView.vue

<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
    <!-- 在使用子组件 HelloWorld 时,通过属性传值,将 msg 的 值传递给子组件 -->
  </div>
</template>

<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'
// 通过 import 导入子组件

export default {
  // export 导出自身作为一个视图组件
  name: 'HomeView',
  components: {
    HelloWorld
  }
  // 以components的形式注册组件(components是局部注册组件,注册后只能在当页调用。)
}
</script>

总结:

main.js作为项目入口文件,该文件中不适合写其他逻辑,所以分出一个子组件 App.vue, 我们使用的时候就把这个子组件(App.vue)当做我们的顶级组件;
访问主页http://localhost:8080/ 的时候, main.js 会找到其实例挂载的位置,即 index.html中的

, 但马上就被 template 模板内容替代;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值