vue 插件plugins
代码地址:
https://github.com/hurong241/vue_study/tree/master/vue2-cli/src/components/68
需要在main.js中引入
//引入Vue import Vue from 'vue' //引入组件 import App from './App70.vue' //引入插件 import plugins from './plugins' //关闭生产提示 Vue.config.productionTip = false //应用插件 Vue.use(plugins) //创建vm new Vue({ render: h => h(App), }).$mount('#app')
App.vue
<template> <div class="app"> <div> vue 插件plugins:<br/> 可以在其中定义全局过滤器、全局指令、混入、在原型上添加方法等 <hr/> </div> <School></School> </div> </template> <script> //引入组件 import School from "./components/68/School.vue"; export default { name: 'App', components: { School, } } </script> <style> .app { background-color: #999; padding: 10px; } </style>
School.vue
<template> <div> <!--语法检查:所有有模板内容都应该放在最外层的div内--> <p>id:{{ school.id }}</p> <!--调用插件plugins.js中定义的全局过滤器--> <p>用plugins中的过滤器过滤名称:{{ school.name| mySlice }}</p> <p>地址:{{ school.address }}</p> <p>用plugins中的全局指令生成一个input并获得焦点:<input type="text" v-fbind:value="school.name"></p> <button @click="showId(school.id)">弹出id</button> <button @click="hello">原型上的hello</button> </div> </template> <script> import {mixin} from "@/mixin"; export default { name: 'MySchool',//名称格式示例要2个词组成首字母大写:MySchool components: {}, data() { return { school: { 'id': '001', 'name': '清华大学好长啊,用plugins中的过滤器,只要前面4个字符', 'address': '北京' } } }, mixins: {mixin}, } </script> <style> </style>
plugins.js
/**插件**/ export default { install(Vue) { //全局过滤器 Vue.filter('mySlice', function (value) { return value.slice(0, 8) }) //定义全局指令 Vue.directive('fbind', { //指令与元素成功绑定时 bind(element,binding){ element.value=binding.value }, //指令所在元素被插入页面时 inserted(element){ element.focus() }, //指令所在的模板被重新解析时 update(element,binding){ element.value=binding.value } }) //定义混入 Vue.mixin({ //往bm上添加数据 data() { return { 'plugin-test': '我来自plugins.js中的Vue.mixin.data()', } }, methods: { //注意:如果在plugins.js中定义了混入,将会覆盖mixin.js showId(id) { alert('我来自plugins.js中,id:'+id) } } }) //在原型上添加方法 Vue.prototype.hello = () => { alert('hello,i am from plugins.js') } } }
赞:(0)
踩:(0)
- 相关文章
- 初识vue
- 数据绑定:第一个vue例子
- vue模板语法
- vue数据绑定
- el与data的两种写法/延迟挂载
- vue数据代理-Object.definePropert
- vue事件及事件修饰符prevent/stop/
- vue计算属性computed
- vue(深度)监视属性watch
- vue绑定样式:class,:style
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- laravel页面静态化的方法
- centos7.4 64位下swoole安装及配置
- navicate连接mycat报1184错误
- curl设置超时不起作用(CURLOPT_TIM
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:623篇
- 浏览数:1306209