vue-cli脚手架 ,过滤器,生命周期钩子函数

vue

一.安装vue-cli脚手架

1.淘宝镜像下载

用淘宝的国内服务器来向国外的服务器请求,我们向淘宝请求,而不是由我们直接向国外的服务器请求,会大大提升请求速度,使用时,将所有的npm命令换成cnpm即可

2.vue-cli的下载

安装文档:https://cli.vuejs.org/zh/guide/cli-service.html#%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4

二.过滤器

1.局部过滤器:在当前组件内使用

 1 <body>

2 <div id="app"></div>

3 <script src="vue.js"></script>

4 <script>

5 let App={

6 data(){return{data:"hello"}},

7 //使用语法

8 template:`<div>我是一个app {{ data | reverse }}</div>`,

9 //创建语法

10 filters:{

11 reverse:function(val){

12 return val.split('').reverse().join("")

13 }

14 }

15 }

16

17 new Vue({

18 el:"#app",

19 data(){

20 return{}

21 },

22 template:`<div class="vue"><App></App></div>`,

23 components:{

24 App

25 }

26 })

27 </script>

28 </body>

2.全局过滤器:任何组件都能使用

<body>
<div ,1) }}</div>`,
})
</script>
</body>

注:参数的个数没有限制

3.moment.js

JavaScript 日期处理类库

使用文档:http://momentjs.cn/

三.生命周期的钩子函数

 1 <body>

2 <div id="app"></div>

3

4 <script src="vue.js"></script>

5 <script>

6 let Test={

7 data(){

8 return {msg:"shy"}

9 },

10 template:`<div id="change">我叫{{ msg }}<button @click="change">更新</button></div>`,

11 methods:{

12 change(){

13 this.msg="dsz"

14 }

15 },

16 beforeCreate() {

17 // 组件创建之前

18 console.log('组件创建之前', this.msg);

19 },

20 created() {

21 //!!!!!!!!!!!!!!!!!!!!!!

22 // 组件创建之后,此时的DOM还没有渲染完成

23 //作用:可用来发送ajax,获取ajax数据,为DOM操作提供数据支撑

24 console.log('组件创建之后', this.msg);

25 },

26

27 beforeMount() {

28 // 挂载之前:

29 console.log(document.getElementById('app'));

30 },

31 mounted() {

32 //!!!!!!!!!!!!!!!!!!!!!!

33 //挂载之后:Test挂载在App上,App挂载在Vue上

34 //作用:可以在此处操作DOM,

35 console.log(document.getElementById('app'));

36 },

37

38 beforeUpdate() {

39 // 在更新之前,调用此钩子,应用:获取原始的DOM

40 console.log(document.getElementById('change').innerHTML);

41

42 },

43 updated() {

44 // 在更新之后,调用此钩子,应用:获取最新的DOM

45 console.log(document.getElementById('change').innerHTML);

46 },

47

48 beforeDestroy() {

49 //在组件销毁之前

50 console.log('beforeDestroy');

51 },

52 destroyed() {

53 //在组件销毁之后

54 //作用:常用于清除定时器

55 console.log('destroyed',this.timer);

56 },

57

58 activated(){

59 console.log('组件被激活了');

60 },

61 deactivated(){

62 console.log('组件被停用了');

63 }

64 };

65 let App={

66 data(){

67 return{is_show:true}

68 },

69 template: `<div><keep-alive><Test v-if="is_show"></Test></keep-alive><button @click="change_test">改变test组件的生死</button></div>`,

70 methods:{

71 change_test(){

72 this.is_show=!this.is_show

73 }

74 },

75 components:{

76 Test

77 }

78 };

79 new Vue({

80 el:"#app",

81 data(){

82 return{}

83 },

84 template: `<div><App></App></div>`,

85 components:{

86 App

87 }

88

89 })

90 </script>

91 </body>

注:keep-alive

Vue提供的内置组件

主要作用:让组件产生缓存

注:获取DOM的救命稻草

document.querySelector("#app")

四.Vue全家桶:vue,vue-router,vuex

vue-router是vue的核心插件

vue+vue-router 主要来做 SPA(Single Page Application) 单页面应用

为什么要使用单页面应用:

传统的路由跳转,如果后端资源过多,会导致页面出现白屏现象,让前端来做路由,在某个生命周期的钩子函数中发送ajax,数据驱动。为了用户体验

注:掘金,开发者资源网站

1.vue-router下载

下载地址:https://unpkg.com/vue-router/dist/vue-router.js

注:vue-router插件依赖于vue

2.vue-router下载的基本使用

 1 <body>

2 <div id="app">

3 <p>

4 <!--router-link和router-link是vue-router的两个全局组件-->

5 <!--router-link相当于a标签 to相当于href-->

6 <router-link to="/">首页</router-link>

7 <router-link to="/course">课程</router-link>

8 </p>

9 <!--router-view是整个路由组件的出口-->

10 <router-view></router-view>

11 </div>

12 <script src="vue.js"></script>

13 <script src="vue-router.js"></script>

14 <script>

15 //0.如果是模块化编程,必须要加这句话,相当于Vue.proptotype.$VueRouter=VueRouter,给Vue的原型上挂载一个属性

16 // Vue.use()

17

18 //3.定义路由组件

19 const Home={

20 template:`<div>我是主页内容</div>`

21 };

22 const Course={

23 template:`<div>我是课程内容</div>`

24 };

25

26 //1.创建router实例

27 const router=new VueRouter({

28 //摆脱了哈希,它使用URL的哈希来模拟一个完整的URL

29 mode:'history',

30 routes:[

31 //2.定义路由规则

32 {

33 path:'/',

34 //对访问地址重定向

35 redirect:'/home'

36 },

37 {

38 path:'/home',

39 component:Home

40 },

41 {

42 path:"/course",

43 component:Course

44 }

45 ]

46 });

47

48 //4.创建并挂载router实例

49 const app=new Vue({

50 //key和value相同写一个

51 router

52 }).$mount("#app")

53 </script>

54 </body>

3.路由命名

(1)在routes中定义name

(2)在使用时对router-link的to属性绑定

 1 <body>

2 <div id="app">

3 <p>

4 //(2)在使用时对router-link的to属性绑定

5 <router-link :to='{name:"Home"}'>首页</router-link>

6 <router-link :to="{name:'Course'}">课程</router-link>

7 </p>

8 <router-view></router-view>

9 </div>

10 <script src="vue.js"></script>

11 <script src="vue-router.js"></script>

12 <script>

13

14 const Home={

15 template:`<div>我是首页</div>`

16 };

17

18 const Course={

19 template:`<div>我是课程</div>`,

20 };

21

22 const router=new VueRouter({

23 routes:[

24 {

25 //(1)在routes中定义name

26 path:'/home',

27 name:'Home',

28 component:Home

29 },

30 {

31 path:'/course',

32 name:'Course',

33 component:Course

34 }

35 ]

36 });

37 const app=new Vue({

38 router,

39 }).$mount("#app")

40 </script>

41 </body>

4.动态路由匹配

如果是动态路由用parmas

如果是get请求信息用query

 1 <body>

2 <div id="app">

3 <p>

4 //使用时

5 <router-link :to='{name:"Home",params:{id:1}}'>第一页</router-link>

6 <router-link :to='{name:"Home",params:{id:2}}'>第二页</router-link>

7 </p>

8 <router-view></router-view>

9 </div>

10 <script src="vue.js"></script>

11 <script src="vue-router.js"></script>

12 <script>

13

14 const Home={

15 data(){

16 return{

17 user_id:3

18 }

19 },

20 template:`<div>我是首页{{ user_id }}</div>`,

21 watch:{

22 //路由信息对象(到哪里去,从哪里来)

23 '$route'(to,from){

24 console.log(111)

25 console.log(to);

26 this.user_id = to.params.id;

27 }

28 }

29 };

30

31 const router=new VueRouter({

32 routes:[

33 {

34 //定义时

35 path:'/home/:id',

36 name:'Home',

37 component:Home

38 }

39 ]

40 });

41 const app=new Vue({

42 router,

43 }).$mount("#app")

44 </script>

45 </body>

5.编程式导航

编程式通过自己的逻辑,来实现复杂的业务 ​ 声明式是通过框架自带的标签属性来完成业务 前者需要自己写大量重复的事务控制代码,后者通过设置可以一次性给所有的业务方法添加上事务特性。

 

 

以上是 vue-cli脚手架 ,过滤器,生命周期钩子函数 的全部内容, 来源链接: utcz.com/z/374887.html

回到顶部