php 自定义sql 脚手架,vue路由、自定义指令、脚手架
*Vue
vue-router
一、路由
一、导航式路由
路由路径由 标签配置 标签内 to属性值规定改标签指向的path路径;
路由对应视图 通过加载组件 加载到上
去首页
去新闻
配置路由的步骤:
1)定义组件--(试图加载的内容组件)Eg:var Home={ template:'
'}
2)配置路由 定义路由
Path 属性 配置路由地址 “*”默认路径下 redirect 属性配置路由重定向 component 属性 配置改地址需要加载的组件视图
3)实例化VueRouter
var router=new VueRouter({ /router 老老实实的写这个名字/
routes:routes
/*VueRouter里面的属性名称不能变 routes */
})
4)VueRouter挂载到Vue实例上面去var app=new Vue({ router:router, el:'#out' })
导航式路由
首页
关于
其他
index
about
other
404Not Found
——————————————————————————————————————————————————————————————
//组件对象
var Index ={
template:"#index"
}
var About ={
template:"#about"
}
var Other ={
template:"#other"
}
var Err ={
template:"#error"
}
// 路由规则
var routes=[
{path:"/index",component:Index},
{path:"/about",component:About},
{path:"/other",component:Other},
{path:"/",redirect:'/index'},
{path:"/error",component:Err},
{path:"*",redirect:'/error'}
]
//创建路由对象
var router=new VueRouter({
routes:routes
})
var vm = new Vue({
el:'#box',
router:router
})
——————————————————
导航样式
.router-link-active{
color:red;
}
二、编程式路由
事件中路由路径跳转————router.push('/other')
var Index ={
template:"#index",
methods:{
tap(){
router.push('/other')
}
}
}
导航标签会默认转换成a标签;可以用tag="div"转换成其他标签
首页
三、路由的传参
1、params——传单个参数
存储路径参数 path:“/index/:id”
获取 this.$route.params.id
{{item.pname}}
//创建组件
详情
{{str}}
//路由规则
{path:"/detail/:id",component:Detail},
// 组件对象
var About ={
template:"#about",
data:function(){
return{
arr:[]
}
},
mounted(){
var _this=this;
axios({
url:"http://jx.xuzhixiang.top/ap/api/productlist.php"
}).then(function(data){
_this.arr=data.data.data
})
}
}
var Detail ={
template:"#detail",
data:function(){
return{
str:''
}
},
mounted(){
//console.log(this.$route.params.id)
var _this=this;
axios({
url:"http://jx.xuzhixiang.top/ap/api/detail.php",
params:{id:_this.$route.params.id}
}).then(function(data){
// console.log(data)
_this.str=data.data.data.pname
})
}
}
2、query——可以传多个,以对象形式
query传参,只能在命名路由中实现
传参:
{{item.pname}}
规则配置
{path:"/home",component:Home,
children:[
{path:"/detail",name:'detail',component:Detail}
]
},
query传参,规则中不做任何参数的保留
接收参数:
mounted(){
var _this=this;
axios({
url:"http://jx.xuzhixiang.top/ap/api/detail.php",
params:{
id:_this.$route.query.id
}
}).then(function(data){
_this.str=data.data.data.pname
})
},
四、嵌套路由
1)父级路由
首页
用户
子路由
去子路由
2)配置路由 定义路由
子路由配置
{path:'/user',component:User,
'children':[
/定义自组件的路由/
{ path:'username',component:UserName, } /注意:子路由前面的斜杠/
]
} ,
其他步骤一样
注意:在嵌套路由的时候,需要监听,视图切换通过watch检测路由参数更改
watch:{
'$route'(to,from){
}
}
路径:
相对路径:不加 / 继承父级的路径
绝对路径:/detail
3、嵌套路由代码示范
嵌套路由
home
about
home
- {{item.pname}}
about
详情
{{str}}
————————————————————————————————————————————————————————————————————————
var Home={
template:"#home",
data:function(){
return{
arr:[]
}
},
mounted(){
var _this=this;
axios({
url:"http://jx.xuzhixiang.top/ap/api/productlist.php"
}).then(function(data){
_this.arr=data.data.data
})
}
}
var About={
template:"#about"
}
var Detail={
template:"#detail",
data:function(){
return{
str:''
}
},
mounted(){
var _this=this;
axios({
url:"http://jx.xuzhixiang.top/ap/api/detail.php",
params:{
id:_this.$route.params.id
}
}).then(function(data){
_this.str=data.data.data.pname
})
},
watch:{
'$route':function(a){
var _this=this;
axios({
url:"http://jx.xuzhixiang.top/ap/api/detail.php",
params:{
id:a.params.id
}
}).then(function(data){
_this.str=data.data.data.pname
})
}
}
}
var routes=[
{path:"/home",component:Home,
children:[
{path:"/detail/:id",component:Detail}
]
},
{path:"/about",component:About},
{path:"/",redirect:"/home"}
]
var router=new VueRouter({
routes:routes
})
var vm = new Vue({
el:'#box',
router:router
})
五、命名路由
路径的另一种定义方式 绑定属性to 对象 name的值为设置的路由路径
对比:
home
about
name属性设置路由视图名字--无名字默认default
下方路由规则里配置:
对比:
{path:"/home",component:Home} //这里的path必须与to的值一致
{path:"/aaa",name:'hello',component:About},//这里的path里可以任意写
一个页面加载多个视图
{path:'/index',name:'index', components:{default:index,page:about}},
通过名字匹配加载的容器
{path:"/index",components:{
default:Index,
'other':Other
}
},
六、路由 +动画
Transition标签包含 router-view标签即可
enter-active-class="animated bounceInLeft"
leave-active-class="animated bounceOutRight"
>
七、路由的钩子函数
beforeRouteEnter(to,from,next){ next( ) } 路由进入钩子函数 next()方法调用才会触发路由切换
beforeRouteUpdate(to,from,next) 路由更新钩子函数
beforeRouteLeave(to,from,next) 路由离开钩子函数
二、自定义指令
1、两种:全局、私有;
全局:
Vue.directive('color',{
inserted:function(a,b){ /*这个元素插入父元素的时候执行的操作*/
a.style.color='blue';
}
})
私有:
var vm = new Vue({
el:"#box",
directives:{
'bac':{
inserted:function(a,b){
a.style.background='yellow'
}
}
}
})
a就指的是获取到的dom节点(下图中的el);参数b是一个对象(下图中的binding),属性如下:
[图片上传失败...(image-d752f8-1540860357631)]
value:可以解析变量,进行业务逻辑的处理;
expression: 只能以字符串输出;
注意:自定义命令可以绑定实例化对象里的任意变量;
举例:
lorem
data:{
str:"hello"
},
打印结果:
expression:str
value:hello
arg:给指令传参:
传参方式:
lorem
取参值: b.reg 结果是 str
只能传字符串常量;想当成变量解析,只能以绑定值得形式;
modifiers:修饰符:以 . 的形式链式的写法,返回键值对:案例如图;
2、钩子函数:
bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作;
inserted: 被绑定元素插入父节点时调用。(bind与该生命周期钩子函数作用十分类似)
update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新。
componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。
3、简写形式
正常形式:
directives:{
'bac':{
inserted:function(a){
a.style.background='yellow'
},
update:function(a){
a.style.background='blue'
},
}
}
简写形式
directives:{
/*简写 表示bind 和update的时候都会执行*/
'color':function(el,binding){
el.style.color=binding.value;
}
}
实例:拖拽;
————————————————————————————————————————————————————————
var vm = new Vue({
el:"#wrap",
directives:{
'move':function(a,b){
a.οnmοusedοwn=function(e){
var x = e.clientX - a.offsetLeft;
var y = e.clientY - a.offsetTop;
document.οnmοusemοve=function(e){
a.style.left = e.clientX - x +"px";
a.style.top = e.clientY - y +"px";
}
document.οnmοuseup=function(e){
document.οnmοusedοwn=null;
document.οnmοusemοve=null;
}
};
}
}
})
三、脚手架
1、安装脚手架(全局安装,只需一次)
npm install vue-cli -g
2、项目构建
官方模版 vue init webpack my-project (tips:代码语法检查较麻烦)
推荐 vue init webpack-simple my-project (适合开发经验丰富者)
根据提示 进行依赖安装
项目启动 npm run dev
项目打包 npm run build
单文件组件 css拥有作用域,
scoped属性可规定当前css只作用于自己的组件,不影响其他
3、插件安装
1、插件安装 axios : npm install axios —-save-dev
哪个文件需要使用,就在该文件的js中 导入 import axios from ‘axios’
2、路由 vue-router (tips:路由规则配置均在main.js中)
依赖安装 nam install vue-router —-save-dev使用
在main.js引入 import VueRouter from ‘vue-router’
声明使用 在main.js 中 Vue.use(VueRouter)
3、Vue ui框架Element --pc (算是目前支持vue2.0最好的ui框架)
npm i element-ui -s
Mintui ---基于Vue的移动端ui框架 Vue.use(MintUi)
Vux
Framework7Tips;
vue全家桶 指(vue + vuex + vue-router + axios)
php 自定义sql 脚手架,vue路由、自定义指令、脚手架相关推荐
- vue自定义html模板,vue中自定义html文件的模板
如果默认生成的 HTML 文件不适合需求,可以创建/使用自定义模板. 一是通过 inject 选项,然后传递给定制的 HTML 文件.html-webpack-plugin 将会自动注入所有需要的 C ...
- Linux运行脚手架vue,vue-cli 快速搭建脚手架
使用 Vue.js 开发大型应用时,我们需要考虑代码目录结构.项目构建和部署.热加载.代码单元测试等事情.如果每个项目都要手动完成这些工作,那无疑效率是低下的,所以通常我们会使用一些脚手架工具来帮助完 ...
- 怎么将vue模板转换为html,vue中自定义html文件的模板
如果默认生成的 HTML 文件不适合需求,可以创建/使用自定义模板. 一是通过 inject 选项,然后传递给定制的 HTML 文件.html-webpack-plugin 将会自动注入所有需要的 C ...
- 自定义报错返回_MybatisPlus基础篇学习笔记(五)------自定义sql及分页查询
本章目录 自定义sql 分页查询 1. 自定义sql 在dao文件中编写自定义接口,并在方法上使用注解形式注入SQL,如图所示: 第一种: 第二种 ① application.yml加入下面配置 my ...
- vue自定义组件,插槽,自定义事件
vue组件套娃 1. vue自定义组件 2. 组件和插槽套娃 3. vue组件通过自定义事件更改vue实例中的数据 1. vue自定义组件 语法 Vue.component('自定义组件名', {pr ...
- VUE使用自定义指令对普通 DOM 元素进行底层操作
使用vue的自定义指令来整合某个重复使用的底层操作 举个聚焦输入框的例子,如下: 当页面加载时,该元素将获得焦点 (注意:autofocus 在移动版 Safari 上不工作).事实上,只要你在打开这 ...
- Vue.directive自定义指令
Vue除了内部指令,我们也可以定义一些属于自己的指令,比如我们要定义一个v-diy的指令,作用就是让文字变成红色. 写好了这个功能,我们现在就自己定义一个全局的指令.我们这里使用Vue.directi ...
- VSCode自定义代码片段11——vue路由的配置
vue路由的配置 {// v'router// 11 如何自定义用户代码片段:VSCode =>左下角设置 =>用户代码片段 =>新建全局代码片段文件... =>自定义片段名称 ...
- Vue.js自定义指令的用法与实例
市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲自定义指令的用法. 自定义指令是用来操作DOM的.尽管Vu ...
最新文章
- MIT类人机器人开始耍杂技了,看这个后空翻它漂亮吗?
- 2019中国独角兽新增数锐减62%,仅有22家;美国新增78家,占全球大半
- java 基础api实现上传,上传文件到7牛云存储的java api一个简单的demo实现
- [POJ2184] Cow Exhibition
- Asp.Net Core SignalR 用泛型Hub优雅的调用前端方法及传参
- Flowable 6.4.1数据库自动建表错误 SQLSyntaxErrorException: Table 'flowable.act_id_property' doesn't exist
- 【操作系统】常见进程调度算法特点总结比较
- 【英语学习】【WOTD】veritable 释义/词源/示例
- php中is null,php中empty(), is_null(), isset()函数区别
- js的异常捕获try和catch语句
- 将Python字符串转换为Int,将Int转换为String
- 张志峰:华尔街归来11年
- 矢量绘图软件 android,sai绘图软件官方
- 深刻理解Binder机制
- 人工智能如何可以思考?
- 外汇EA如何需看这四点
- 百度统计 页面代码安装状态:代码未生效 解决
- STM8L051比较器使用案例(二)COMP1+COMP2构成窗口比较器
- 叒一次算法作业hhhhhhhh
- 豆瓣电影top250信息爬取