首页 > 其他分享 > Vue项目的使用

Vue项目的使用

时间:2023-10-08 19:15:44浏览次数:29  
标签:插件 Vue name 项目 yang 使用 组件 import

解析Vue项目

// 1 为什么浏览器中访问某个地址,会显示某个页面组件
	-根组件:App.Vue必须是:
        <template>
             <div id="app">
                 <router-view></router-view>
        </div>
        </template>
	-配置路由:
		// 先导入
		import yang from '../views/yang'
		// 配置路由
		const routes = [
            {
                path: "/yang",
                name: "yang",
                component: yang //导入的组件
            }
        ]
// 2 在页面组件中使用小组件
    -1、在components中写一个小组件,我写的是child
    -2、在父组件中导入组件:
    	 // @ 代指src路径
    	import Child from "@/components/child.vue";
    -3、在父组件中注册组件:
    	components: {Child},
    -4、在父组件中使用组件:
    	在 <template></template> 中以标签形式引入:
			 -<Child :msg="msg" @myevent="handleEvent"></Child>
	-5 自定义属性,自定义事件,插槽,跟之前一模一样

登录小案例

1、创建一个登录的组件
2、访问/login显示这个组件
3、在LoginView.vue写html,和js,axios
	-安装 axios
    -cnpm install -S axios  // 把安装的axios放到package.json中
4、写ajax,向后端发送请求,给按钮绑定两个一个事件



////// 解决后端跨域问题
1、安装:
	pip 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'
)

Vue代码

<template>
  <div>
    <p>账号:<input type="text" v-model="username"></p>
    <p>密码:<input type="password" v-model="password"></p>
    <p>
      <button @click="login">登录</button>
    </p>
  </div>
</template>

<script>
import axios from "axios";

export default {
  name: "LoginView",
  data() {
    return {
      username: "",
      password: ""
    }
  },
  methods: {
    login() {
      console.log(this.username, this.password)
      axios.post('http://127.0.0.1:8000/login/login/', {
        username: this.username,
        password: this.password
      }).then(res => {
        if (res.data.code === 100) {
          location.href = 'https://www.baidu.com/'
        } else {
          alert(res.data.msg)
        }
      })
    }
  }
}
</script>

<style>

</style>

drf 代码

class Login(ViewSet):
    @action(methods=["POST"], detail=False)
    def login(self, request):
        username = request.data.get("username")
        password = request.data.get("password")
        if username == "kevin" and password == "123":
            return Response({"code": 100, "msg": "登录成功"})
        else:
            return Response({"code": 101, "msg": "登录失败账号或密码输入错误"})

scoped

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

ref属性

// ref属性
	-放在普通标签上,通过  this.$refs.名字---》取到的是dom对象,可以直接操作dom
    -放在组件上,通过该this.$refs.名字---》取到的是组件对象,这样在父组件中,就拿到了子组件对象,对象属性和方法直接用即可

props

// 父传子之自定义属性

  // 1 基本使用
    props: ['msg'],
  // 2 限制类型:
    props: {'msg': Boolean},
  // 3 限制类型,必填,默认值
     props: {
        msg: {
          type: String, //类型
          required: true, //必要性
          default: '老王' //默认值
        }
      }

混入mixin

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

mixin(混入):
 	功能:可以把多个组件共用的配置提取成一个混入对象
    
使用步骤:
	-1、定义混入对象:
        export const yang = {
            data() {
                return {
                    name: "mixin"
                }
            },
            methods: {
                handerone() {
                    alert(this.name)
                }
            }
        }
    -2、使用局部混入:
    	import {yang} from '@/mixin'
		mixins: [yang]
    -3、全局使用混入:每个组件都有效main.js中
        import {yang} from '@/mixin'
        Vue.mixin(yang)

插件

插件功能:用于增强Vue,有很多第三方插件
	有哪些第三方插件:
    	vuex,router,elemetui
        
// 定义自己的插件
本质:包含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

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


// 在vue项目中引入   elementui
	1 在项目中安装:
    	cnpm install element-ui -S
	2 main.js配置
    import ElementUI from 'element-ui';       // 把对象引入

Vuex

# 在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信

# 使用步骤:
	-1、在store/index.js中
    	import Vue from '../../../vueprojact/Vue'
        import Vuex from 'vuex'

        Vue.use(Vuex)

        export default new Vuex.Store({
            state: {
                name: "我是彭于晏"
            },
            mutations: {
                add_name(state) {
                    console.log("---+++ 来到了mutations")
                    state.name = name
                }
            },
            actions: {
                add(context) {
                    console.log("+++++ 来到了action")
                    context.commit("add_name")
                }
            },
        })
    -2、在组件中使用变量
        -2.1、拿值:this.name = this.$store.state.name
        -2.2、 修改值:三种方式
            -直接:this.$store.state.num += 1
            -间接:this.$store.commit('add_mu',3)
            -间间接:this.$store.dispatch('add',10)
    -3、任意组件都都可以使用,实现了组件间通信

标签:插件,Vue,name,项目,yang,使用,组件,import
From: https://www.cnblogs.com/chao0308/p/17749896.html

相关文章

  • Vue-router、localStorange
    Vue-Router的使用作用: 借助于router可以实现单页面组件之间的跳转this.router的一些使用方法:this.$router.push(path):相当于点击路由链接(可以返回到当前路由界面)this.$router.replace(path):用新路由替换当前路由(不可以返回到当前路由界面)this.$router.......
  • 学习笔记421—Win7下使用U盘安装linux Ubuntu16.04双系统图文教程
    Win7下使用U盘安装linuxUbuntu16.04双系统图文教程安装步骤:1、下载Ubuntu16.04镜像软件;2、使用ultraISO软件制作U盘启动盘;3、利用U盘启动盘来安装Ubuntu系统;4、使用EasyBCD创建启动系统启动引导;5、重启系统即可。Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的开源G......
  • 路飞商城项目介绍
    路飞商城项目需求#线上销售课程的 -商城-知识付费类#需求 -首页功能 -轮播图接口 -推荐课程接口-用户功能 -用户名密码登录-手机号验证码登录-发送手机验证码-验证手机号是否注册过-注册接口......
  • Android 定时器简单使用及学习
    本文,介绍常用定时器实现方式:1)Handler+Sleep方式2)Handler+PostDelayed方式3)Handler+Timer方式Handler的主要作用就是用来处理接收到的信息,用Handler消息传递机制是为了多个线程并发更新U的同时,保证线程安全1)Handler+Sleep方式1.1)Handler+Sleep定义publicclassHandlerAn......
  • vue封装搜索组件,自定义elment搜索组件
    组件案例<template><divclass="dialog-search"><el-form:inline="true"ref="ruleForm":model="formInline"class="demo-form-inlinetop-screen"><divclass="to......
  • vue3子组件页面不更新
    写在前面这是一次滑铁卢,整整找了半天时间...项目结构我有一个组件A,A中定义了一个属性data:Object,A中将data赋值给了一个reactive类型的对象R。页面中均使用R。现象描述当调用A的父组件P更新了A的data后,A的页面不更新问题分析P更新A后,A是一个新的对象,但R仍然引用旧对象,导致产......
  • 创建Vue实例方式一(基于核心包)
    基于核心包创建Vue实例核心包就是Vue.jsvue2地址:https://v2.cn.vuejs.org/vue3地址:https://cn.vuejs.org/注意开发版本和生产版本,学习建议使用开发版本  ......
  • Hyperlynx使用心得
     从开始使用这个仿真软件,我们得先明白其所拥有的功能。Hyperlynx解决的是板级信号仿真,这就包括SI,PI,EMC等方面。而信号完整性又可谓是重头。https://blog.csdn.net/qq_37285073/article/details/80335293  按照自己电路板设计要求,输入层叠结构,以及相应厚度。上图显示的......
  • 在 Less 中使用与 Less 内置函数同名的原生 CSS 函数
    参考资料calc()-CSS:层叠样式表|MDNGettingstarted-Escaping|Less.jsUsingTheCSSFunctioncalc()InsideTheLESSCSSPreprocessor问题描述在原生CSS中有以下的函数:calc()、max()、min()等,而在Less中也有同名的函数,使用的时候可能会冲突,无法得到需要的结......
  • npm ,yarn 更换使用国内镜像源,阿里源,清华大学源
    目录背景Nnpm,yarn常用命令常用命令:yarn安装:npm,yarn使用国内源原淘宝npm域名即将停止解析!!使用老域名的请尽快更新到新域名!yarn配置源:临时使用全局配置npm配置源:背景在平时开发当中,我们经常会使用Npm,yarn来构建web项目。但是npm默认的源的服务器是在国外的,如果没有梯子......