JavaScript

超轻量级php框架startmvc

Vue中的组件及路由使用实例代码详解

更新时间:2020-08-28 00:24 作者:startmvc
1.组件是什么      组件系统是Vue的一个重要概念,因为它是一种抽象

1.组件是什么

       组件系统是 Vue 的一个重要概念,因为它是一种抽象,允许我们使用小型、独立和通常可复用的组件构建大型应用。通常一个应用会以一棵嵌套的组件树的形式来组织;

1.1组件的声明及使用

  全局组件


<body>
 <div id="app">
 <!-- 用全局组件的名称作为HTML的标签 -->
 <myzujian></myzujian>
 </div>
 
</body>
<script>
 //设置全局组件
 Vue.component("myzujian",{
 template:"<h2>我是全局组件</h2>"
 });
 var app=new Vue({
 el:"#app",
 });
</script>

  局部组件


<body>
 <div id="app">
 <!-- 用局部组件的名称作为HTML的标签 -->
 <zu-jian></zu-jian>
 </div>
 
</body>
<script>
 var app=new Vue({
 el:"#app",
 components:{
 zuJian:{
 template:"<h1>我是局部组件</h1>", 
 }
 }
 });
</script>

1.2组件使用注意事项

   组件名如果是驼峰法命名,使用组件时要将大写字母改为小写,并且在前面加上 - 组件中的tamplate属性必须有一个唯一的根元素,否则会报错

1.3组件中数据及方法


<body>
 <div id="app">
 <mytemp></mytemp>
 </div>
</body>
<script>
 var app=new Vue({
 el:"#app",
 data:{},
 components:{
 mytemp:{
 data(){
 return {
 msg:"123456789",
 }
 },
 methods: {
 cli(){
 alert(this.msg);
 }
 },
 template:'<h1 @click="cli">you{{msg}} very good</h1>',
 }
 }
 });
</script>

1.4父级组件传值


<body>
 <div id="app">
 <my :cc="msg"></my>
 </div>
</body>
<script>
 var app = new Vue({
 el:'#app',
 data:{msg:'没事干'},
 components:{
 my:{
 props:['cc'],
 template:"<s>{{cc}}</s>"
 }
 }
 })
</script>

2.路由的使用

   Vue在使用路由插件Vue-router,要提前引入。


<body>
 <div id="app">
 <ul>
 <li> <router-link to="/login">登录</router-link> </li>
 <li> <router-link to="/reg">注册</router-link> </li>
 </ul>
 <router-view></router-view>
 </div>
</body>
<script>
 // 获取路由对象
 var ro = new VueRouter({
 // 定义路由规则
 routes:[
 // 具体匹配规则
 // {path:匹配地址栏路由变化,component:要展示组件}
 {path:'/reg',component:{template:"<s>我是注册</s>"}},
 {path:'/login',component:{template:"<s>我是登录</s>"}},
 ]
 })
 var app = new Vue({
 el: '#app',
 data: {},
 router:ro
 })
</script>

2.1动态路由匹配


<body>
 <div id="app">
 <!-- 传递数据直接写在 / 后面 -->
 <router-link to="/user/10">hfhg</router-link>
 <router-view></router-view>
 </div>
</body>
<script>
 var router = new VueRouter({
 routes: [
 { 
 // 获取数据是变量的名字前面加: 
 path: "/user/:id", component: {
 mounted(){
 // router会为vue添加公有属性 $route ,使用$route来获取数据
 console.log(this.$route.params.id)
 },
 template: "<s>就大师{{$route.params.id}}分离开国家</s>"
 }
 }
 ]
 })
 var app = new Vue({
 el: '#app',
 data: {},
 router,
 })
</script>

总结

以上所述是小编给大家介绍的Vue中的组件及路由使用实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!