首页 > 其他分享 >解析Vue项目

解析Vue项目

时间:2023-09-21 22:03:08浏览次数:34  
标签:vue name lqz 项目 js Vue 组件 import 解析

解析Vue项目

1、浏览器中访问某个地址,会显示某个页面的组件

  根组件:App.vue

 2、配置路由

router----》index.js---》const routes = [
{
path: '/lqz',
name: 'lqz',
component: Lqz # 组件,需要导入
},
]

 3、写组件页面:-src---->views文件夹

 4、页面组件使用小组件

  1、写一个小组件,我们写了个Child.vue

  2、在父组件中导入组件    

     @ 代指src路径
      import Child from "@/components/Child";

  3、父组件中,注册组件   

    components: {
      Child
        }

   4、父组件中使用组件

      <Child :msg="msg" @myevent="handleEvent"></Child>

    5、自定义属性,自定义事件,插槽和之前一样

yyqx.vue

<template>
  <div>
    <h2>scoped在这里</h2>
    <button>这里是父类{{name}}</button>
    <hi @up="myqx"></hi>
    <hr>
    <h2>ref的使用</h2>
    <input type="text" v-model="refname" ref="myinput"> --->{{refname}}
    <button @click="handleclick">点我操作refname</button>
    <hi @up="myqx" ref="myhi"></hi>
  </div>
</template>

<script>
import hi from "@/components/hi.vue";
export default {
  name: 'qx',
  data() {
    return {
      name:'',
      refname:''
    }
  },
  methods: {
    myqx(name) {
      console.log(111)
      this.name = name
    },
    handleclick(){
      this.$refs.myinput.value = '千玺'
      this.$refs.myhi.handleref()
    }
  },
  components: {
    hi,
  }
}
</script>

components中的hi.vue

<template>
  <div>
    <h2>scoped子类也有</h2>
    <h3>子类的组件</h3>
    <input type="text" v-model="name">
    <button @click="handleup">传给父组件</button>
    <button @click="handleref">点击弹窗</button>
    </div>
</template>

<script>
import {defineComponent} from 'vue'
export default defineComponent({
  name: "hi",
  data() {
    return {
      name: ''
    }
  },
  methods: {
    handleup() {
      this.$emit('up', this.name)
    },
    handleref(){
      alert('欢迎')
    }
  }
})
</script>

 

 

登录案例

1 、登录页面:LoginView.vue

2、访问/login 显示这个页面组件

3、在LoginView.vue写html,和js,axios

安装 axios:
  cnpm install -S axios   # 也就是把安装的axios放到package.json中

4、写ajax,向后端发送请求,给按钮绑定两个一个事件

  安装axios,导入axios

 

后端:

 前端:

login.vue

 index:

 

写个后端的登录接口,处理好跨域问题,处理跨域如下:

解决跨域问题: 

1 安装
pip3.8 install django-cors-headers
2 注册app
INSTALLED_APPS = (
...
'corsheaders',
...
)
3 配置中间件
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]

4 配置文件中加入:setting下面添加下面的配置
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
)

CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Pragma',
'token'
)

 

scoped

新建的组件 加了scoped,表示样式只在当前组件生效,如果不加,子组件都会使用这个样式
<style scoped>
</style>

 

ref属性

ref属性:

  放在普通标签上,通过 this.$refs.名字 --》取到的是dom对象,可以直接操作dom

  放在组件上,通过this.$refs.名字 -->取到的是组件对象,这样父组件中就拿到了子组件对象,对象属性和方法直接用即可

views:

 components:

props其他

父传子之自定义属性

1、基本使用:

  props:[‘msg’: Boolean]

  2、限制类型,必填,默认值  

    props: {
      msg: {
        type: String, //类型
        required: true, //必要性
        default: '老王' //默认值  
        }
       }  

混入mixin

包下的 index.js 有特殊函数,
    -之前导入
    import xx from './mixin/index.js'
    -可以写成
    import xx from './mixin'

mixin(混入)
功能:可以把多个组件共用的配置提取成一个混入对象

使用步骤:

  1、定义混入对象:mixin --> index.js中写:  

    export const lqz = {
      data() {
      return {
      name: 'lqz'
      }
     },
    methods: {
      handleName() {
        alert(this.name)
      }
    }
   }

  2、使用混入:局部使用,组件中使用  

    import {lqz} from '@/mixin'
    mixins: [lqz]

  3、局部使用混入:每个组件都有效main.js中    

      import {lqz} from '@/mixin'
      Vue.mixin(lqz)

局部混入 mixins:

 全局混入(在main.js中):

 

插件

插件功能:用于增强Vue,有很多第三方插件

定义自己的插件

本质:包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据

使用步骤:

    方式1 定义插件:plugins---》index.js---》
      export default {
        install() {
       1 在vue实例中放属性
       2 定义混入,全局都可以使用混入
       3 自定义指令(不讲了)---》以后我们可能使用了一个第三方插件,它提供了一些指令 v-lq
        4 定义全局组件---》全局
      }
    }
    方式2 在main.js中 使用插件
    import lqz from '@/plugins'
    Vue.use(lqz) # 这句话,就会执行lqz中得install,并且把vue传入

 

方式一:

 方式二:

 

Elementui

组件 | Element

ui 库,控制样式的,它就是vue的一个插件

在vue项目中引入   elementui

1 在项目中安装:
cnpm install element-ui -S
2 main.js配置

import ElementUI from 'element-ui';       // 把对象引入
    import 'element-ui/lib/theme-chalk/index.css';  // 把样式引入
    Vue.use(ElementUI)

看到好看的,直接复制
-html
-css
-js

标签:vue,name,lqz,项目,js,Vue,组件,import,解析
From: https://www.cnblogs.com/YeeQX/p/17721054.html

相关文章

  • 湖南大学个人项目互评
    作者:胡友缘/*...一些注释信息...*/#include"feature.h"#include"user.h"#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>intmain(){srand(time(0));//srand根据时间生成rand参数,实现伪随机User......
  • 湖南大学个人项目互评
    湖南大学个人项目互评以下对高茂庭的个人项目代码进行评析:一、项目需求用户:小学、初中和高中数学老师。功能:1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小......
  • 湖南大学个人项目互评中小学试卷生成
    项目需求用户小学、初中和高中数学老师。功能1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户名......
  • 解析vue项目、
    解析一下vue项目1为什么浏览器中访问某个地址,会显示某个页面组件//-根组件:App.vue必须是<template><divid="app"><router-view></router-view></div></template>//-1配置路由router---......
  • 个人项目互评
    个人项目互评1前言本文是应要求对结对编程队友韩成玉同学的个人项目评价的分析与评价。个人看法可能不全面,理解有偏差,还望理解2个人项目需求本次个人项目的需求如下:用户:小学、初中和高中数学老师。功能:1、命令行输入用户名和密码,两者之间用空格隔开(程序预设......
  • react的todolist拆分项目
    React的todolist的拆分项目TodoList.jsximportTodofrom"./Todo"exportdefaultfunctionTodoList({todos,toggleTodo,deleteTodo}){return<><ul>{todos.map(todo=><......
  • zookeeper中zoo.cfg参数解析
    ticktime=20002000为通信心跳inilimit=10lf(leadersandfollow)初始通信时限10*2000添加配置server.A=B:C:DA是一个数字表示第几号服务器B是这个服务器的地址C是这个服务器follow和leader交换信息的端口D是万一服务器挂了需要一个端口重新来进行选举,选出一个新的leader,这......
  • 如何修改vue-cli3预设的terser-webpack-plugin?
    要修改VueCLI3预设的terser-webpack-plugin插件配置,您可以使用VueCLI提供的配置文件和插件配置选项。以下是一些步骤来实现这个目标:创建配置文件:在您的VueCLI3项目根目录下,可以创建一个名为vue.config.js的文件,如果项目中还没有这个文件。这个文件将用于配置webpack......
  • Vue执行和开发流程、登录小案例、混入、插件、elementui
    一、Vue执行流程1、vue的执行流程#1为什么浏览器中访问某个地址,会显示某个页面组件 -根组件:App.vue必须是<template><divid="app"><router-view></router-view></div> </template> -1配置路由 router--......
  • 个人项目互评——中小学数学卷子自动生成程序
    项目需求用户小学、初中和高中数学老师。功能1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户名......