前端之Vue day 06 Vue-cli、es6导入导出语法、axios

一、Vue-cli

1.介绍

​ Vue CLI, 是一个基于 Vue.js 进行快速开发的完整系统。它依赖nodejs解释器环境,这个解释器是基于谷歌v8引擎编写的,能过在操作系统上执行js代码(原本js只能运行在浏览器中)

​ 运用的单页面应用(spa)结构,一个页面,套很多很多组件

注意:

​ 浏览器只能识别 js html css,所以vue-cli创建项目开发,在项目中开发,最后上线,一定要编译成浏览器老三样

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

2.搭建

1.安装nodejs

下载安装就行,一般推荐下16.几,或者18.几

https://nodejs.org/zh-cn/download/releases/
一些小指令:
cmd下

node -v # 查看当前node版本
node   #进入node环境
.exit  # 退出node
2.安装cnpm模块

cnpm相当于npm,以后就替代npm,直接取淘宝镜像下载,速度快

npm install -g cnpm --registry=https://registry.npm.taobao.org
3.安装vue-cli
cnpm install -g @vue/cli
4.使用vue-cli创建项目

​ 过程要做很多选择,注意下

vue create myfirstvue
>>>
Please pick a preset:
    Manually select features  # 选这个
    

然后设置一下项目名,就开始创建,要花点时间

二、pycharm打开vue项目

1.启动

​ 在pycharm的命令行中,执行启动命令,需要一点时间

npm run serve

​ 还有一种方法

三、Vue项目目录介绍

myfirstvue		#项目名
	-node_modules	# 有很多的小文件夹,该项目的依赖,项目要运行没有他不行,如果没有这个项目,需要执行cnpm install 进行安装,以后传项目给别人时,要把这个忽略掉
    -public		#文件夹
    	-favicon.ico	#网站小图标
        -index.html		# 单页面开发,不要动他
    -src		# 核心文件夹,内容重要,所用到的东西都这里
    	-assets          # 静态资源,以后前端用的图片,js,css。。都放在这里
    		logo.png       #  图片
        -components        # 以后在这里放组件, xx.vue, 小组件
			HelloWorld.vue  # 提供的展示组件
        -router               # 前面安装了Router,就会有这个文件夹,下面有个index.js
            index.js
        -store               # 前面安装了Vuex,就会有这个文件夹,下面有个index.js
            -index.js
        -views               # 页面组件,大组件
            -AboutView.vue
            -HomeView.vue
        -App.vue            # 根组件,new Vue实例管理了 div,以后原来写在div中的东西,现在都写在APP.vue中
        -main.js            # 项目的启动入口
    .gitignore             # git的忽略文件,后面学了git就会了
    babel.config.js        # bable配置文件,不用动
    jsconfig.json          # 配置文件,不用动
    package.json           #不用动,安装了第三方模块,它自动增加
    package-lock.json      # 锁定文件,忽略掉
    README.md              #  用户手册
    vue.config.js          # vue的配置文件
        

四、研究开发vue项目规范

1.新建xx.vue
2.在xx.vue中就三块内容,一个vue文件最少要有一块
	#1 以后组件的html内容,都写在这里,大外层只能包一个标签里
	<template>
    <div>      </div>  # 比如说一个大div包着
	</template>
    
    #2 以后该组件使用的样式,都写在这
    <style>
    </style>
    
    # 3 以后js的东西,都写在这
    <script>
	</script>
3.研究main.js
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

  #		>>>其实就是锁定了index.html 中的id为app的div标签
 #   		并且以后在APP.vue中写的内容,都会映射到被锁定的div中

五、es6导入导出语法

1.前言

​ JS是在Es6版本及以后开始支持导入导出包

2.导出

​ 在需要传出的文件中,要导出默认值 ,一定要导出,不导出就是用不了的

​ export default{ }

自己在src下创建一个文件夹,建立一个js文件,名字随意
里面写点内容,比如我就写了var name='jack'

function sum(a,b) {
    return a+b
}


export default {name,sum}   # 导出去,给外部使用

3.导入

​ 在main.js中,导入一下,注意写法,是字符串,和Python有区别

import gao from './gao/myjs'  # 前面就是命名,后面是导入的写法
就可以使用了
console.log('项目开始了')
console.log(gao.name)

4.命名导出、命名导入

​ 其实用起来没啥区别

export const x = (a,b) => {   # 定义一个常量,绑定一个函数,把x传出去 此处用了箭头函数
  return a+b
}

————————————————————————————————————

import {x} from './gao/myjs'   # 导入可以在{}内选择接收几个
console.log('项目开始了')
console.log(x(100,77))   # 直接用

5.导入导出组件(要费点脑子)

​ 我们去研究下src\views\HomeView.vue 看到有这么一个东西,HelloWorld肯定是一个局部组件

import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'HomeView',
  components: {
    HelloWorld
  }
}

这就是注册局部组件

​ 然后去HelloWorld.vue里研究

<template>
xxx
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  }
}
</script>

发现是默认导出,注意,本来局部组件是要写template的,但是被自动注入了,不用写

​ 然后这里运用到了父子通讯的知识,自定义属性等

​ 意思就是,页面组件,导入一下子组件,注册一下子组件,子组件里面默认导出一下自己的数据,就很NICE,页面组件的template中就可以随意使用子组件了

总结:

​ 其实这里都是在用老知识,就只是学了导入导出,一定要注意谁是页面组件,谁是子组件,谁要注册谁,谁要导出谁

HomeView.vue 是页面组件,HelloWorld.vue是小组件,HomeView.vue内注册HelloWorld.vue小组件,HelloWorld.vue内导出自己的数据

注册和导出,都用的默认导出(因为页面组件也要被别的使用,所以都是导出的形式),每个组件都要导出

父子之间数据不共享一定要记住,除非上了ref什么的方法

六、Vue项目中使用axios

1.先安装

在当前pycharm项目的命令栏先停止开启的vue项目
输入cnpm install axios -S  # -S意思是把依赖添加到package.json中

2.使用

比如发送post请求,会把第二个参数对应的对象当作body体数据让url携带过去,然后拿到一个res
——————————————————————————————————————————————————
axios.post('http://127.0.0.1:8080/login',{username:this.username,password:this.password})
    .then(res=>{console.log(res)})

七、终极解决跨域

https://www.cnblogs.com/liuqingzheng/articles/17132395.html

八、scoped的使用

功能:

​ 让style只给自己用,不染给子组件

用法:

<style scoped>

h1 {
  background-color: aqua;
}
</style>

注意

1.. 代表当前所在目录
… 代表当前所在目录的父目录
./ 代表当前所在目录下的某个文件夹或文件

2.python 包如果包含__init__会在包被导入的时候先执行,并且可以写__all__=[]方法规定能被*使用的变量
3.访问根路径,显示只显示页面组件,不会单单显示小小组件
4.访问vue项目的根地址,就是显示HomeView.vue这个大的页面组件
5.解释性语言:运行在解释器之上的   eg:js,ode,php,python
  编译型语言:直接把源代码编译成不同平台的可执行文件   eg:c,go,c++
6.APP.vue,里面写的内容,在所有组件中都会显示
posted @ 2023-02-20 18:43  yiwufish  阅读(83)  评论(0)    收藏  举报