- A+
VUE框架基础部分随笔
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。
Vue可以使用简单的代码实现一个单页面应用。
基本格式
Vue通过模板语法来声明式的将数据渲染进DOM:
例如:
<div id = "app"> {{ message }} </div>
通过{{ }}即可将数据绑定至message位置
<script> const data = { data(){ return { message : 'hello Vue !' } } } Vue.createApp(data).mount('#app') </script>
通过以上方法即可成功创建一个Vue实例!
响应式框架
在一个Vue实例中所有数据都是响应式的{{}}中的数据会根据Vue实例中绑定的数据的实时变化发生改变。
Data中Created,methods,watch的区别
在一个Vue实例中,Vue为用户定义了五个函数执行区域,不同的区域在Vue生命周期的不同时间执行,因此可以用于不同情况。
<script> const data = { data(){ return { message : 'hello Vue !' } }, methods: { },
mounted: {
} watch: { }, create: { } } Vue.createApp(data).mount('#app') </script>
执行时间或作用:
created:在html加载完成之前执行 先执行父组。
件再执行子组件。
mounted:在html加载完成之后执行 先执行子组件再执行父组件。
methods:事件方法执行。
watch:监听一个值的变化,变化后执行。
指令
Vue中提供的特殊属性 包括:v-bind , v-on , v-model。
V-bind指令
v-bind 属性:通过此属性可以绑定元素中属性的值 借此实现属性的动态绑定。
例如:
vue代码:
<div id='app'>
<p v-bind:display='switch' >人生何处不相逢</p>
</div>
javascript代码:
<script> const data = { data(){ return { switch: 'none' } } } </script> Vue.createApp(data).mount('#app') </script>
以上代码即可实现动态控制<p>元素显示与隐藏。
V-on指令
v-on属性:通过此属性可以为元素添加一个事件监听器,来提高用户的交互
例如:
vue代码:
<div id='app'> <buttomv-on:click='tijiao'' >提交</buttom> </div>
javascript代码:
<script> const data = { data() { return { } } methods: { tijiao(){ //事件提交执行的函数 } } } Vue.createApp(data).mount('#app') </script>
用户点击button按钮是 vue将会调用tijiao()函数。
V-model指令:
Vue 还提供了 v-model
指令,它能轻松实现表单输入和应用状态之间的双向绑定。
例如:
vue代码:
<div id="app"> <p>{{ message }}</p> <input v-model="message" /> </div>
javascript代码:
const data = { data() { return { message: '撑伞也是雨中人' } } } Vue.createApp(data).mount('#app')
以上代码即可实现用户输入与元素的双向绑定。
V-if指令:
v-if指令的值绑定data中的元素的值true或false 来控制元素的显示或隐藏。
V-for指令:
v-for指令可以实现列表渲染。
例如:
vue代码:
<div id="app"> <ol> <li v-for="todo in todos"> {{ todo.text }} </li> </ol> </div>
javascript代码:
const data = { data() { return { todos: [ { text: '落日归山海' }, { text: '陪伴成告白' } ] } } } Vue.createApp(data).mount('#app')
构建一个组件化单页面应用
vue可以组件树的构建方式来实现一个应用程序。
通过把页面中的一部分分为不同组件实现组件化编程,提高代码的可维护性。
vue框架基本目录结构:
|--node_modules 已安装的依赖 |--public 目录存放公共资源文件 如image icon等 |--src |--assets 目录储存公共样式,图标等 |--components 目录储存自己编写的组件文件 |--router 目录存储页面路由规则 |--views 目录存放自己编写的页面 |--plugins 目录存放element等配置文件 |--app.vue 文件是页面的入口 |--main.js 文件是js文件的入口 你需要在这里把js文件引入进去 |--ststic 目录存放一些图片图标等静态资源
组件
app.vue文件默认结构:
<template> <div id = 'app'> 项目主页 </div> </template> <script> data () { return { } } </script> <style scoped>
</style>
main.js文件默认结构:
<script> // 项目的入口文件 每次项目初始化都会加载此文件 import Vue from 'vue' import App from './App.vue' import router from './router' import './plugins/element.js' import axios from 'axios' Vue.config.productionTip = false axios.defaults.baseURL = '' Vue.prototype.$http = axios new Vue({ router, render: h => h(App) }).$mount('#app') </script>
路由
通过 Vue-router 技术实现页面的路由。
vue代码
<template> <router-link to='/admin'>页面跳转</router-link> <router-view></router-view> </template>
javascript代码
// // index.js 文件为编写路由的核心文件 // import Vue from 'vue' // 引入vue import VueRouter from 'vue-router' // 引入vue-router路由 import AboutMe from '../components/admin.vue' // 引入组件 <-- Vue.use(VueRouter) // Vue全局使用Router const originalPush = VueRouter.prototype.push VueRouter.prototype.push = function push (location) { return originalPush.call(this, location).catch(err => err) } const routes = [ // 配置路由 这里是一个数组 { path: '/admin', name: 'admin', component: admin } ] const router = new VueRouter({ routes }) export default router
下列代码实现路由 可以理解为html的<a>标签 。
<router-link to='/admin'>页面跳转</router-link>
将路由结果组件渲染到router-view中。 <router-view></router-view>
在vue应用程序中通常通过编写模块组件的方式由浅入深,自底向上的方式来实现一个大规模的应用程序。
下一篇继续了解:
1 . 使用vue创建多页面网站方法。
2 . 通过 Axios 技术发起http请求实现与后端接口的交互。
3 . 了解element-ui 组件便捷成型工具。
4 . vue-router深入理解。
16:08:46
本文章为作者个人总结,如有错误请指正。